computer-vision-warehouse について
倉庫やサプライチェーン業務で、画像モデルによる検出、分類、追跡、検査を扱うコンピュータービジョンスキルです。荷物の監視、在庫計数、品質検査、安全確認に取り組むチームを対象としています。
主な機能
- 01荷物の検出と追跡
- 02欠陥・品質検査
- 03OCR による在庫計数
- 04バーコードと QR コードの読み取り
- 05人物と PPE の検出
活用シーン
- 01倉庫映像内の荷物の追跡
- 02品質検査での欠陥特定
- 03画像を使った在庫計数
- 04個人用保護具の着用状況の監視
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ kishorkukreja/ awesome-supply-chain --skill computer-vision-warehouseインストール後、Claude Code で/computer-vision-warehouseを入力して読み込まれたか確認します。
詳細
倉庫業務向けコンピュータービジョン
倉庫業務やサプライチェーン業務にコンピュータービジョンを適用するエキスパートです。CNN、YOLO、その他のビジョンモデルを使用して、物体検出、分類、追跡、検査システムを実装することを目指します。
用途
- 荷物の検出と追跡:YOLO、追跡アルゴリズム
- 品質検査:CNN による分類、欠陥検出
- 在庫のカウント:物体のカウント、OCR
- バーコード/QR コードの読み取り:従来の手法と ML による手法
- 安全監視:人物検出、PPE 検出
荷物検出向け YOLO
import cv2
from ultralytics import YOLO
class PackageDetector:
"""
Real-time package detection using YOLO
"""
def __init__(self, model_path='yolov8n.pt'):
self.model = YOLO(model_path)
def detect_packages(self, image_path):
"""Detect packages in warehouse image"""
results = self.model(image_path)
detections = []
for result in results:
boxes = result.boxes
for box in boxes:
x1, y1, x2, y2 = box.xyxy[0]
confidence = box.conf[0]
class_id = box.cls[0]
detections.append({
'bbox': (x1, y1, x2, y2),
'confidence': confidence,
'class': class_id
})
return detections
品質検査向け CNN
from tensorflow import keras
from tensorflow.keras import layers
class QualityInspector:
"""
CNN for defect detection
"""
def build_model(self, image_size=(224, 224), num_classes=2):
model = keras.Sequential([
layers.Conv2D(32, 3, activation='relu',
input_shape=(*image_size, 3)),
layers.MaxPooling2D(2),
layers.Conv2D(64, 3, activation='relu'),
layers.MaxPooling2D(2),
layers.Conv2D(128, 3, activation='relu'),
layers.MaxPooling2D(2),
layers.Flatten(),
layers.Dense(256, activation='relu'),
layers.Dropout(0.5),
layers.Dense(num_classes, activation='softmax')
])
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
return model
物体追跡
from sort import Sort
class PackageTracker:
"""
Multi-object tracking for packages
"""
def __init__(self):
self.tracker = Sort()
self.package_trajectories = {}
def track(self, detections, frame_id):
"""
Track packages across frames
"""
# Convert detections to format for tracker
dets = np.array([[d['bbox'][0], d['bbox'][1],
d['bbox'][2], d['bbox'][3],
d['confidence']] for d in detections])
# Update tracker
tracked_objects = self.tracker.update(dets)
# Store trajectories
for obj in tracked_objects:
obj_id = int(obj[4])
bbox = obj[:4]
if obj_id not in self.package_trajectories:
self.package_trajectories[obj_id] = []
self.package_trajectories[obj_id].append({
'frame': frame_id,
'bbox': bbox
})
ツールとライブラリ
OpenCV:画像処理YOLOv8:物体検出TensorFlow/PyTorch:ディープラーニングRoboflow:データセット管理Detectron2:Facebook の検出フレームワーク
関連スキル
- ml-supply-chain:一般的な ML
- warehouse-automation:自動化システム
- quality-management:検査プロセス
コメント
Markdown 対応