47 $ d'outils. 11 000 $ de factures. Le même mois.
Une caméra compte les voitures, les personnes, les cartons, tout ce que vous pointez. Le mois dernier, elle a fonctionné sur 6 sites et je l'ai touchée deux fois.

une image. 6 objets encadrés et étiquetés en 40 ms.
La plupart des gens pensent qu'il faut un doctorat et une ferme de GPU pour ça. Il suffit d'une webcam et d'un week-end.
Ceux qui ont compris ça facturent tranquillement 1 800 $/mois à des entreprises locales pour compter ce qu'un humain comptait à la main.
Voici le montage complet.
Ce que c'est vraiment
Une caméra pointe vers quelque chose. Le modèle encadre chaque objet, l'étiquette, le compte.
L'entreprise paie pour un seul chiffre : combien. Combien de voitures sont entrées, combien de personnes sont entrées, combien de cartons ont bougé.
Ce chiffre nécessitait autrefois une personne avec un bloc-notes. Maintenant, il nécessite un fichier sur un serveur à 6 $.
C'est le système.
Le pipeline, de bout en bout

Flux RTSP de la caméra : en direct YOLO11 détecte : 40 ms par image ByteTrack attribue les ID : en temps réel Le compteur enregistre dans un CSV : instantané Streamlit affiche le tableau de bord : 24h/24 et 7j/7
Temps de montage total : un week-end. Coût de fonctionnement total : 47 $/mois. Lignes que vous éditez réellement : une.
Étape 1 : Installer la pile
1pip install ultralytics supervision opencv-python
Une ligne dans le terminal. YOLO11 détecte, supervision compte, opencv lit la vidéo.
Pas un codeur ? C'est la seule commande d'installation de tout le montage. Collez-la une fois, elle installe tout. À partir de là, vous clonez un fichier et modifiez une ligne : le lien de votre caméra.
Étape 2 : Détecter n'importe quoi en 4 lignes

1from ultralytics import YOLO23model = YOLO("yolo11n.pt")4results = model("street.jpg")5results[0].show()
YOLO11 connaît 80 objets : personne, voiture, vélo, camion, chien, bouteille. Pointez-le sur n'importe quelle image et il les encadre. Pas encore d'entraînement.
Modifiez une ligne : remplacez "street.jpg" par votre propre photo. C'est toute la modification.
Étape 3 : L'exécuter en direct sur une caméra
1from ultralytics import YOLO23model = YOLO("yolo11n.pt")4model.predict(source=0, show=True) # 0 = webcam, ou collez une URL RTSP
Remplacez 0 par un lien RTSP et il lit n'importe quelle caméra de sécurité du bâtiment. C'est le moment où le client s'intéresse.
Modifiez une ligne : collez le lien de la caméra du client à la place du 0. Tout le reste reste inchangé.
Étape 4 : Suivre et compter, pas seulement détecter

La détection seule recompte la même voiture à chaque image. ByteTrack donne à chaque objet un ID unique et le conserve d'une image à l'autre, de sorte que vous comptez chaque objet une fois lorsqu'il franchit une ligne.
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 et line[dot]out_count contiennent les totaux en direct. C'est le produit. Vous copiez ce bloc en entier, vous ne l'écrivez pas.
Ma première démo a échoué ici. La caméra comptait les ombres comme des personnes, donc le client du parking a vu 400 voitures sur un terrain vide. La solution était conf=0.5, la ligne déjà dans le code ci-dessus : ignorer tout ce dont le modèle n'est pas sûr à 50 %. Augmentez-la, les fantômes disparaissent. Le client a signé le lendemain.
Étape 5 : Apprenez-lui à compter VOTRE objet
Les 80 classes par défaut couvrent les voitures et les personnes. Quand un client veut des palettes, des bouteilles de vin ou du bétail, Roboflow fait le gros du travail dans le navigateur. Vous glissez 200 photos, cliquez sur les boîtes autour de l'objet, appuyez sur entraîner. Pas de code.

étiquetage d'une classe personnalisée dans Roboflow. cliquer, nommer, terminé
1from ultralytics import YOLO23model = YOLO("yolo11n.pt")4model.train(data="dataset.yaml", epochs=50, imgsz=640)
50 époques sur un GPU Colab gratuit prend 20 minutes. Dans les deux cas, le même pipeline compte maintenant tout ce que vous lui avez montré. C'est la ligne dans le titre.
Étape 6 : Enregistrer chaque nombre
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])
Une ligne CSV par événement. Ce fichier transforme un script en un rapport que l'entreprise peut lire. Il est déjà intégré au fichier que je vous envoie.
Étape 7 : Mettez-le derrière un tableau de bord
1import streamlit as st2import pandas as pd34df = pd.read_csv("counts.csv", names=["time", "object", "count"])5st.metric("Total aujourd'hui", int(df["count"].sum()))6st.line_chart(df, x="time", y="count")
Exécutez streamlit run app[dot]py, pointez un domaine vers le serveur, envoyez un lien au client. Ils se connectent et regardent leurs propres chiffres évoluer. Ce lien est ce pour quoi vous facturez.
Le coût
Ancienne méthode vs ce montage :
- Modèle - Équipe CV, 6 mois → YOLO11, gratuit, 5 minutes
- Étiquetage - Société d'annotation → Roboflow, pointer-cliquer
- Matériel - Boîtier GPU sur site, 4 000 $ → Serveur cloud, 46 $/mois
- Tableau de bord - Développeur contractuel, 8 000 $ → Streamlit, gratuit
- Domaine - Rétrospective d'agence → 12 $/an, environ 1 $/mois
Serveur + domaine reviennent à 47 $/mois. Un seul client le couvre 38 fois.
Comment décrocher le premier client
Oubliez le pitch deck. Entrez dans une entreprise qui a déjà des caméras et compte quelque chose à la main. Un parking, une salle de sport, un café, un petit entrepôt.
Demandez leur lien RTSP ou 2 minutes de leur flux de caméra. Exécutez le fichier sur votre ordinateur portable sur place. Montrez-leur leur propre porte avec des chiffres en direct.
Voir leur propre caméra compter pour eux conclut la vente plus vite que n'importe quelle diapositive. Mes 3 premiers clients ont signé lors de la même visite.
Comment ça devient 11 000 $/mois

Vous vendez le chiffre, pas le code.
Mois 1
- Monté sur mon ordinateur portable. Premier client : un parking voulant des comptages horaires de voitures. 500 $/mois.
Mois 3
- 3 clients : parking, compteur de porte pour un commerce de détail, salle de sport suivant les heures de pointe. 4 500 $/mois.
Mois 6
- 6 clients à 1 800 $ de moyenne. Un entrepôt comptant des palettes, un café comptant le trafic piétonnier, un service de vélos en libre-service suivant les stations. 11 000 $/mois.
Mois 12
- Arrêtez de vendre des installations, vendez des accès. Un tableau de bord par client, facturé mensuellement. Au-delà de 20 000 $/mois avec des coûts toujours inférieurs à 60 $.
Le travail est fait une fois. Les factures se répètent.
Commencez ici
La pile est gratuite. La caméra est déjà au mur. Vous modifiez une ligne et exécutez un fichier.
commentez "DETECT" et je vous enverrai le fichier complet : le lien de la caméra va en haut, tout le reste s'exécute tout seul. Le notebook d'entraînement et le modèle dataset[dot]yaml sont inclus.
Les entreprises de votre rue comptaient à la main aujourd'hui. Elles le referont demain, à moins que quelqu'un ne se présente avec le lien de la caméra.





