ผมสร้าง AI ตรวจจับวัตถุด้วยงบ 47 ดอลลาร์ ตอนนี้มี 6 ธุรกิจจ่ายเงินให้ผมเดือนละ 11,000 ดอลลาร์

@0x_fokki
อังกฤษ2 สัปดาห์ที่ผ่านมา · 05 ก.ค. 2569
359K
115
11
29
262

TL;DR

คู่มือแบบทีละขั้นตอนในการสร้างระบบตรวจจับวัตถุต้นทุนต่ำโดยใช้ YOLO11 เพื่อทำงานนับจำนวนอัตโนมัติให้กับธุรกิจต่างๆ ซึ่งสร้างรายได้ประจำต่อเดือนได้อย่างมหาศาล

เครื่องมือมูลค่า $47. ใบแจ้งหนี้มูลค่า $11,000. เดือนเดียวกัน

กล้องนับรถ คน กล่อง หรืออะไรก็ตามที่คุณเล็งไปที่มัน มันทำงานครอบคลุม 6 สถานที่เมื่อเดือนที่แล้ว และผมแตะมันแค่สองครั้ง

Fokki - inline image

หนึ่งเฟรม. วัตถุ 6 ชิ้นถูกทำกรอบและติดป้ายกำกับใน 40 มิลลิวินาที

คนส่วนใหญ่คิดว่าต้องใช้ปริญญาเอกและฟาร์ม GPU มันใช้แค่เว็บแคมและวันหยุดสุดสัปดาห์

คนที่รู้ทันกำลังเรียกเก็บเงินธุรกิจท้องถิ่นเดือนละ $1,800 ต่อรายอย่างเงียบๆ เพื่อนับสิ่งที่มนุษย์เคยนับด้วยมือ

นี่คือโครงสร้างทั้งหมด

มันคืออะไรกันแน่

กล้องเล็งไปที่บางสิ่ง โมเดลจะทำกรอบวัตถุทุกชิ้น ติดป้ายกำกับ และนับมัน

ธุรกิจจ่ายเพื่อตัวเลขเดียว: เท่าไหร่ มีรถเข้ามากี่คัน มีคนเดินเข้ากี่คน มีกล่องเคลื่อนย้ายกี่กล่อง

ตัวเลขนั้นเคยต้องใช้คนถือคลิปบอร์ด ตอนนี้มันต้องใช้ไฟล์เดียวบนเซิร์ฟเวอร์ราคา $6

นั่นคือระบบ

ไปป์ไลน์ ตั้งแต่ต้นจนจบ

Fokki - inline image

กล้องป้อน RTSP: สด YOLO11 ตรวจจับ: 40ms ต่อเฟรม ByteTrack กำหนด ID: เวลาจริง ตัวนับบันทึกลง CSV: ทันที Streamlit แสดงแดชบอร์ด: 24/7

เวลาในการสร้างทั้งหมด: วันหยุดสุดสัปดาห์เดียว ค่าใช้จ่ายในการรันทั้งหมด: $47/เดือน บรรทัดที่คุณแก้ไขจริง: หนึ่งบรรทัด

ขั้นตอนที่ 1: ติดตั้งสแต็ก

text
1pip install ultralytics supervision opencv-python

หนึ่งบรรทัดในเทอร์มินัล YOLO11 ตรวจจับ supervision นับ opencv อ่านวิดีโอ

ไม่ใช่นักเขียนโค้ด? นี่คือคำสั่งติดตั้งเดียวในโครงสร้างทั้งหมด วางมันครั้งเดียว มันจะติดตั้งทุกอย่าง จากตรงนี้คุณโคลนไฟล์เดียวและเปลี่ยนบรรทัดเดียว: ลิงก์กล้องของคุณ

ขั้นตอนที่ 2: ตรวจจับอะไรก็ได้ใน 4 บรรทัด

Fokki - inline image
text
1from ultralytics import YOLO
2
3model = YOLO("yolo11n.pt")
4results = model("street.jpg")
5results[0].show()

YOLO11 มาพร้อมกับความรู้เกี่ยวกับวัตถุ 80 ชนิด: คน รถ จักรยาน รถบรรทุก สุนัข ขวด เล็งไปที่ภาพใดก็ได้แล้วมันจะทำกรอบวัตถุเหล่านั้น ยังไม่ต้องเทรน

เปลี่ยนบรรทัดเดียว: สลับ "street.jpg" เป็นรูปถ่ายของคุณเอง นั่นคือการแก้ไขทั้งหมด

ขั้นตอนที่ 3: รันมันแบบสดบนกล้อง

text
1from ultralytics import YOLO
2
3model = YOLO("yolo11n.pt")
4model.predict(source=0, show=True) # 0 = เว็บแคม, หรือวาง URL RTSP

สลับ 0 เป็นลิงก์ RTSP แล้วมันจะอ่านกล้องวงจรปิดทุกตัวในอาคาร นี่คือช่วงเวลาที่ลูกค้าเริ่มสนใจ

เปลี่ยนบรรทัดเดียว: วางลิงก์กล้องของลูกค้าตรงที่ 0 อยู่ ทุกอย่างอื่นคงเดิม

ขั้นตอนที่ 4: ติดตามและนับ ไม่ใช่แค่ตรวจจับ

Fokki - inline image

การตรวจจับเพียงอย่างเดียวนับรถคันเดิมซ้ำในทุกเฟรม ByteTrack จะกำหนด ID ให้แต่ละวัตถุหนึ่งตัวและคงไว้ข้ามเฟรม ดังนั้นคุณนับแต่ละสิ่งเพียงครั้งเดียวเมื่อมันข้ามเส้น

text
1import cv2
2from ultralytics import YOLO
3import supervision as sv
4
5model = YOLO("yolo11n.pt")
6tracker = sv.ByteTrack()
7line = sv.LineZone(start=sv.Point(0, 500), end=sv.Point(1920, 500))
8annot = sv.LineZoneAnnotator()
9
10cap = cv2.VideoCapture("traffic.mp4")
11while True:
12 ok, frame = cap.read()
13 if not ok:
14 break
15 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 รูป คลิกกรอบรอบวัตถุ กดเทรน ไม่ต้องเขียนโค้ด

Fokki - inline image

การติดป้ายกำกับคลาสที่กำหนดเองใน Roboflow คลิก ตั้งชื่อ เสร็จ

text
1from ultralytics import YOLO
2
3model = YOLO("yolo11n.pt")
4model.train(data="dataset.yaml", epochs=50, imgsz=640)

50 epochs บน GPU Colab ฟรีใช้เวลา 20 นาที ไม่ว่าจะด้วยวิธีใด ไปป์ไลน์เดียวกันตอนนี้นับอะไรก็ตามที่คุณแสดงให้มันเห็น นี่คือบรรทัดในพาดหัวข่าว

ขั้นตอนที่ 6: บันทึกทุกตัวเลข

text
1import csv, datetime
2
3def 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: วางไว้หลังแดชบอร์ด

text
1import streamlit as st
2import pandas as pd
3
4df = 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/เดือน

Fokki - inline image

คุณขายตัวเลข ไม่ใช่โค้ด

เดือนที่ 1

- สร้างบนแล็ปท็อปของผม ลูกค้ารายแรก: ลานจอดรถที่ต้องการนับจำนวนรถรายชั่วโมง $500/เดือน

เดือนที่ 3

- ลูกค้า 3 ราย: ที่จอดรถ, เคาน์เตอร์นับคนเข้าร้านค้าปลีก, ฟิตเนสที่ติดตามชั่วโมงเร่งด่วน $4,500/เดือน

เดือนที่ 6

- ลูกค้า 6 รายที่ราคาเฉลี่ย $1,800 คลังสินค้านับพาเลท ร้านกาแฟนับจำนวนคนเดินผ่าน บริษัทจักรยานแชร์ติดตามชั้นวาง $11,000/เดือน

เดือนที่ 12

- หยุดขายการติดตั้ง ขายการเข้าสู่ระบบ หนึ่งแดชบอร์ดต่อลูกค้า คิดราคารายเดือน เกิน $20,000/เดือน โดยต้นทุนยังต่ำกว่า $60

งานทำครั้งเดียว ใบแจ้งหนี้เกิดขึ้นซ้ำ

เริ่มที่นี่

สแต็กฟรี กล้องอยู่บนผนังแล้ว คุณแก้ไขหนึ่งบรรทัดและรันหนึ่งไฟล์

คอมเมนต์ "DETECT" แล้วผมจะส่งไฟล์เต็ม: ลิงก์กล้องอยู่ด้านบน ทุกอย่างอื่นทำงานเอง รวมถึงสมุดบันทึกการเทรนและเทมเพลต dataset[dot]yaml

ธุรกิจบนถนนของคุณนับด้วยมือวันนี้ พวกเขาจะทำอีกครั้งพรุ่งนี้ เว้นแต่จะมีใครสักคนมาพร้อมกับลิงก์กล้อง

บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม