เครื่องมือมูลค่า $47. ใบแจ้งหนี้มูลค่า $11,000. เดือนเดียวกัน
กล้องนับรถ คน กล่อง หรืออะไรก็ตามที่คุณเล็งไปที่มัน มันทำงานครอบคลุม 6 สถานที่เมื่อเดือนที่แล้ว และผมแตะมันแค่สองครั้ง

หนึ่งเฟรม. วัตถุ 6 ชิ้นถูกทำกรอบและติดป้ายกำกับใน 40 มิลลิวินาที
คนส่วนใหญ่คิดว่าต้องใช้ปริญญาเอกและฟาร์ม GPU มันใช้แค่เว็บแคมและวันหยุดสุดสัปดาห์
คนที่รู้ทันกำลังเรียกเก็บเงินธุรกิจท้องถิ่นเดือนละ $1,800 ต่อรายอย่างเงียบๆ เพื่อนับสิ่งที่มนุษย์เคยนับด้วยมือ
นี่คือโครงสร้างทั้งหมด
มันคืออะไรกันแน่
กล้องเล็งไปที่บางสิ่ง โมเดลจะทำกรอบวัตถุทุกชิ้น ติดป้ายกำกับ และนับมัน
ธุรกิจจ่ายเพื่อตัวเลขเดียว: เท่าไหร่ มีรถเข้ามากี่คัน มีคนเดินเข้ากี่คน มีกล่องเคลื่อนย้ายกี่กล่อง
ตัวเลขนั้นเคยต้องใช้คนถือคลิปบอร์ด ตอนนี้มันต้องใช้ไฟล์เดียวบนเซิร์ฟเวอร์ราคา $6
นั่นคือระบบ
ไปป์ไลน์ ตั้งแต่ต้นจนจบ

กล้องป้อน RTSP: สด YOLO11 ตรวจจับ: 40ms ต่อเฟรม ByteTrack กำหนด ID: เวลาจริง ตัวนับบันทึกลง CSV: ทันที Streamlit แสดงแดชบอร์ด: 24/7
เวลาในการสร้างทั้งหมด: วันหยุดสุดสัปดาห์เดียว ค่าใช้จ่ายในการรันทั้งหมด: $47/เดือน บรรทัดที่คุณแก้ไขจริง: หนึ่งบรรทัด
ขั้นตอนที่ 1: ติดตั้งสแต็ก
1pip install ultralytics supervision opencv-python
หนึ่งบรรทัดในเทอร์มินัล YOLO11 ตรวจจับ supervision นับ opencv อ่านวิดีโอ
ไม่ใช่นักเขียนโค้ด? นี่คือคำสั่งติดตั้งเดียวในโครงสร้างทั้งหมด วางมันครั้งเดียว มันจะติดตั้งทุกอย่าง จากตรงนี้คุณโคลนไฟล์เดียวและเปลี่ยนบรรทัดเดียว: ลิงก์กล้องของคุณ
ขั้นตอนที่ 2: ตรวจจับอะไรก็ได้ใน 4 บรรทัด

1from ultralytics import YOLO23model = YOLO("yolo11n.pt")4results = model("street.jpg")5results[0].show()
YOLO11 มาพร้อมกับความรู้เกี่ยวกับวัตถุ 80 ชนิด: คน รถ จักรยาน รถบรรทุก สุนัข ขวด เล็งไปที่ภาพใดก็ได้แล้วมันจะทำกรอบวัตถุเหล่านั้น ยังไม่ต้องเทรน
เปลี่ยนบรรทัดเดียว: สลับ "street.jpg" เป็นรูปถ่ายของคุณเอง นั่นคือการแก้ไขทั้งหมด
ขั้นตอนที่ 3: รันมันแบบสดบนกล้อง
1from ultralytics import YOLO23model = YOLO("yolo11n.pt")4model.predict(source=0, show=True) # 0 = เว็บแคม, หรือวาง URL RTSP
สลับ 0 เป็นลิงก์ RTSP แล้วมันจะอ่านกล้องวงจรปิดทุกตัวในอาคาร นี่คือช่วงเวลาที่ลูกค้าเริ่มสนใจ
เปลี่ยนบรรทัดเดียว: วางลิงก์กล้องของลูกค้าตรงที่ 0 อยู่ ทุกอย่างอื่นคงเดิม
ขั้นตอนที่ 4: ติดตามและนับ ไม่ใช่แค่ตรวจจับ

การตรวจจับเพียงอย่างเดียวนับรถคันเดิมซ้ำในทุกเฟรม ByteTrack จะกำหนด ID ให้แต่ละวัตถุหนึ่งตัวและคงไว้ข้ามเฟรม ดังนั้นคุณนับแต่ละสิ่งเพียงครั้งเดียวเมื่อมันข้ามเส้น
1import cv22from ultralytics import YOLO3import supervision as sv45model = YOLO("yolo11n.pt")6tracker = sv.ByteTrack()7line = sv.LineZone(start=sv.Point(0, 500), end=sv.Point(1920, 500))8annot = sv.LineZoneAnnotator()910cap = cv2.VideoCapture("traffic.mp4")11while True:12 ok, frame = cap.read()13 if not ok:14 break15 result = model(frame, conf=0.5)[0]16 detections = sv.Detections.from_ultralytics(result)17 detections = tracker.update_with_detections(detections)18 line.trigger(detections)19 frame = annot.annotate(frame, line_counter=line)20 cv2.imshow("count", frame)21 if cv2.waitKey(1) == 27:22 break
line[dot]in count และ line[dot]out_count เก็บยอดรวมแบบสด นั่นคือผลิตภัณฑ์ คุณคัดลอกบล็อกนี้ทั้งบล็อก คุณไม่ต้องเขียนมัน
เดโมแรกของผมล้มเหลวตรงนี้ กล้องนับเงาเป็นคน ดังนั้นลูกค้าที่จอดรถเห็นรถ 400 คันบนลานจอดรถที่ว่างเปล่า วิธีแก้คือ conf=0.5 ซึ่งเป็นบรรทัดที่อยู่ในโค้ดด้านบนแล้ว: ไม่สนใจอะไรก็ตามที่โมเดลไม่มั่นใจ 50% เพิ่มค่านี้ ผีก็หายไป ลูกค้าเซ็นสัญญาในวันถัดไป
ขั้นตอนที่ 5: สอนมันให้นับวัตถุของคุณ
คลาสเริ่มต้น 80 คลาสครอบคลุมรถและคน เมื่อลูกค้าต้องการพาเลท ขวดไวน์ หรือวัว Roboflow จะทำส่วนที่ยากในเบราว์เซอร์ คุณลากรูป 200 รูป คลิกกรอบรอบวัตถุ กดเทรน ไม่ต้องเขียนโค้ด

การติดป้ายกำกับคลาสที่กำหนดเองใน Roboflow คลิก ตั้งชื่อ เสร็จ
1from ultralytics import YOLO23model = YOLO("yolo11n.pt")4model.train(data="dataset.yaml", epochs=50, imgsz=640)
50 epochs บน GPU Colab ฟรีใช้เวลา 20 นาที ไม่ว่าจะด้วยวิธีใด ไปป์ไลน์เดียวกันตอนนี้นับอะไรก็ตามที่คุณแสดงให้มันเห็น นี่คือบรรทัดในพาดหัวข่าว
ขั้นตอนที่ 6: บันทึกทุกตัวเลข
1import csv, datetime23def log_count(label, count):4 with open("counts.csv", "a", newline="") as f:5 csv.writer(f).writerow([datetime.datetime.now(), label, count])
หนึ่งแถว CSV ต่อเหตุการณ์ ไฟล์นี้เปลี่ยนสคริปต์ให้เป็นรายงานที่ธุรกิจสามารถอ่านได้ มันเชื่อมต่ออยู่ในไฟล์ที่ผมส่งให้คุณแล้ว
ขั้นตอนที่ 7: วางไว้หลังแดชบอร์ด
1import streamlit as st2import pandas as pd34df = pd.read_csv("counts.csv", names=["time", "object", "count"])5st.metric("Total today", int(df["count"].sum()))6st.line_chart(df, x="time", y="count")
รัน streamlit run app[dot]py ชี้โดเมนไปที่เซิร์ฟเวอร์ ส่งลิงก์ให้ลูกค้า พวกเขาเข้าสู่ระบบและดูตัวเลขของตัวเองเคลื่อนไหว ลิงก์นั้นคือสิ่งที่คุณเรียกเก็บเงิน
ค่าใช้จ่าย
วิธีเก่าเทียบกับโครงสร้างนี้:
- โมเดล - ทีม CV, 6 เดือน → YOLO11, ฟรี, 5 นาที
- การติดป้ายกำกับ - บริษัททำคำอธิบายประกอบ → Roboflow, ชี้แล้วคลิก
- ฮาร์ดแวร์ - กล่อง GPU ในสถานที่, $4,000 → เซิร์ฟเวอร์คลาวด์, $46/เดือน
- แดชบอร์ด - นักพัฒนาสัญญาจ้าง, $8,000 → Streamlit, ฟรี
- โดเมน - ค่าธรรมเนียมเอเจนซี่ → $12/ปี, ประมาณ $1/เดือน
เซิร์ฟเวอร์ + โดเมนรวมเป็น $47/เดือน ลูกค้าหนึ่งรายครอบคลุมมัน 38 เท่า
วิธีหาลูกค้ารายแรก
ข้ามพรีเซนเทชั่น เดินเข้าไปในธุรกิจที่มีกล้องอยู่แล้วและนับสิ่งต่างๆ ด้วยมือ เช่น ลานจอดรถ ฟิตเนส ร้านกาแฟ คลังสินค้าขนาดเล็ก
ขอ URL RTSP หรือฟุตเทจกล้อง 2 นาทีของพวกเขา รันไฟล์บนแล็ปท็อปของคุณตรงนั้น แสดงประตูทางเข้าของพวกเขาพร้อมตัวเลขสดให้ดู
การได้เห็นกล้องของตัวเองนับให้พวกเขาชนะใจได้เร็วกว่าสไลด์ใดๆ ลูกค้า 3 รายแรกของผมเซ็นสัญญาภายในการเยี่ยมชมครั้งเดียวกัน
วิธีเปลี่ยนเป็น $11,000/เดือน

คุณขายตัวเลข ไม่ใช่โค้ด
เดือนที่ 1
- สร้างบนแล็ปท็อปของผม ลูกค้ารายแรก: ลานจอดรถที่ต้องการนับจำนวนรถรายชั่วโมง $500/เดือน
เดือนที่ 3
- ลูกค้า 3 ราย: ที่จอดรถ, เคาน์เตอร์นับคนเข้าร้านค้าปลีก, ฟิตเนสที่ติดตามชั่วโมงเร่งด่วน $4,500/เดือน
เดือนที่ 6
- ลูกค้า 6 รายที่ราคาเฉลี่ย $1,800 คลังสินค้านับพาเลท ร้านกาแฟนับจำนวนคนเดินผ่าน บริษัทจักรยานแชร์ติดตามชั้นวาง $11,000/เดือน
เดือนที่ 12
- หยุดขายการติดตั้ง ขายการเข้าสู่ระบบ หนึ่งแดชบอร์ดต่อลูกค้า คิดราคารายเดือน เกิน $20,000/เดือน โดยต้นทุนยังต่ำกว่า $60
งานทำครั้งเดียว ใบแจ้งหนี้เกิดขึ้นซ้ำ
เริ่มที่นี่
สแต็กฟรี กล้องอยู่บนผนังแล้ว คุณแก้ไขหนึ่งบรรทัดและรันหนึ่งไฟล์
คอมเมนต์ "DETECT" แล้วผมจะส่งไฟล์เต็ม: ลิงก์กล้องอยู่ด้านบน ทุกอย่างอื่นทำงานเอง รวมถึงสมุดบันทึกการเทรนและเทมเพลต dataset[dot]yaml
ธุรกิจบนถนนของคุณนับด้วยมือวันนี้ พวกเขาจะทำอีกครั้งพรุ่งนี้ เว้นแต่จะมีใครสักคนมาพร้อมกับลิงก์กล้อง





