Add dockerfile
This commit is contained in:
		
							
								
								
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					venv
 | 
				
			||||||
 | 
					docker/
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							@@ -1,5 +1,15 @@
 | 
				
			|||||||
# CVZone MQTT Tracker
 | 
					# CVZone MQTT Tracker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Run with docker
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					docker run \
 | 
				
			||||||
 | 
					  --device /dev/video0 \
 | 
				
			||||||
 | 
					  -e MQTT_ADDRESS="10.1.1.100" \
 | 
				
			||||||
 | 
					  -e MQTT_PORT="1883" \
 | 
				
			||||||
 | 
					  -e MQTT_CLIENT_ID="cvzone_tracker_01" \
 | 
				
			||||||
 | 
					  -e MIN_FACE_SCORE="0.5" \
 | 
				
			||||||
 | 
					  cvzone-mqtt-tracker:latest
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Install on Raspberry Pi
 | 
					## Install on Raspberry Pi
 | 
				
			||||||
*Required*: Raspberry Pi OS 64-bit
 | 
					*Required*: Raspberry Pi OS 64-bit
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					FROM python:3.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN apt-get update \
 | 
				
			||||||
 | 
					    && apt-get install -y python3-opencv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					COPY . /app
 | 
				
			||||||
 | 
					RUN pip install -r requirements.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMD python main.py
 | 
				
			||||||
							
								
								
									
										12
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								main.py
									
									
									
									
									
								
							@@ -1,8 +1,16 @@
 | 
				
			|||||||
 | 
					import os
 | 
				
			||||||
from tracker import Tracker
 | 
					from tracker import Tracker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mqtt_address = os.environ.get("MQTT_ADDRESS", "10.1.1.100")
 | 
				
			||||||
 | 
					mqtt_port = int(os.environ.get("MQTT_PORT", 1883))
 | 
				
			||||||
 | 
					mqtt_client_id = os.environ.get("MQTT_CLIENT_ID", "cvzone_tracker_01")
 | 
				
			||||||
 | 
					min_face_score = float(os.environ.get("MIN_FACE_SCORE", 0.5))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tracker = Tracker(
 | 
					tracker = Tracker(
 | 
				
			||||||
    mqtt_address="10.1.1.100",
 | 
					    mqtt_address=mqtt_address,
 | 
				
			||||||
    mqtt_client_id="cvzone_tracker_01",
 | 
					    mqtt_port=mqtt_port,
 | 
				
			||||||
 | 
					    mqtt_client_id=mqtt_client_id,
 | 
				
			||||||
 | 
					    min_face_score=min_face_score,
 | 
				
			||||||
    show_img=False)
 | 
					    show_img=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
while True:
 | 
					while True:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,3 +1,5 @@
 | 
				
			|||||||
cvzone==1.5.6
 | 
					cvzone==1.5.6
 | 
				
			||||||
mediapipe==0.8.10
 | 
					mediapipe==0.8.9.1
 | 
				
			||||||
 | 
					opencv-contrib-python==4.5.5.64
 | 
				
			||||||
 | 
					opencv-python==4.5.5.64
 | 
				
			||||||
paho-mqtt==1.6.1
 | 
					paho-mqtt==1.6.1
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
cvzone==1.5.6
 | 
					 | 
				
			||||||
mediapipe==0.8.9.1
 | 
					 | 
				
			||||||
numpy==1.22.3
 | 
					 | 
				
			||||||
opencv-contrib-python==4.5.5.64
 | 
					 | 
				
			||||||
opencv-python==4.5.5.64
 | 
					 | 
				
			||||||
paho-mqtt==1.6.1
 | 
					 | 
				
			||||||
							
								
								
									
										13
									
								
								tracker.py
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								tracker.py
									
									
									
									
									
								
							@@ -7,9 +7,16 @@ from debounce import debounce
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Tracker(object):
 | 
					class Tracker(object):
 | 
				
			||||||
    def __init__(self, mqtt_address="", mqtt_port=1883, mqtt_client_id="", show_img=False):
 | 
					    def __init__(
 | 
				
			||||||
 | 
					            self,
 | 
				
			||||||
 | 
					            mqtt_address="",
 | 
				
			||||||
 | 
					            mqtt_port=1883,
 | 
				
			||||||
 | 
					            mqtt_client_id="",
 | 
				
			||||||
 | 
					            min_face_score=0.5,
 | 
				
			||||||
 | 
					            show_img=False):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.show_img = show_img
 | 
					        self.show_img = show_img
 | 
				
			||||||
        self.min_face_score = 0.5
 | 
					        self.min_face_score = min_face_score
 | 
				
			||||||
        self.cap = cv2.VideoCapture(0)
 | 
					        self.cap = cv2.VideoCapture(0)
 | 
				
			||||||
        self.face_detector = FaceDetector()
 | 
					        self.face_detector = FaceDetector()
 | 
				
			||||||
        self.img = None
 | 
					        self.img = None
 | 
				
			||||||
@@ -56,8 +63,6 @@ class Tracker(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                score = face_bboxs[0]["score"][0]
 | 
					                score = face_bboxs[0]["score"][0]
 | 
				
			||||||
                return score >= self.min_face_score
 | 
					                return score >= self.min_face_score
 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            print('Image not usable')
 | 
					 | 
				
			||||||
        return False
 | 
					        return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def loop(self):
 | 
					    def loop(self):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user