Detect Motion and intimate to the user | python
This IOT Project will allow you to detect the motion and also get intimate to the user via social media using python code.
What is Motion Detection?
Motion detection is the process of detecting a change in the position of an object relative to its surroundings.
Why Motion Detection?
Motion Detector is a device used to detect unauthorized movement in restricted areas. The device is used in commercial and residential properties, as well as in industrial and military.
Requirements
- Raspberry PI 3
- A WebCam
- PIR Sensor
In this case, I will use my laptop so we need not worry about this hardware.
Software
- Python 3
- Open CV (libraries)
- Pywhatkit(libraries)
LIBRARIES
Open CV (Computer Vision)
- It is a huge open-source library for computer vision, machine learning, and image processing.
- so it plays a more important role in real-time operations in daily life.
- It can process an image as well as videos for identity objects.
- IoT developers can use this OpenCV for more applications like motion detection and people detection.
Link for download Open CV package: https://pypi.org/project/opencv-python/
Pywhatkit
- Pywhatkit is also an open-source library for sending messages in WhatsApp and Gmail.
- it also contains many features other than that.
- This library is mostly used by programmers to send WhatsApp messages.
Link for download pywhatkit package: https://pypi.org/project/pywhatkit/
The motion detection process
- Grayscale conversion
- Find the difference between two frames( Frame1, Frame2)
- calculate the intensity of the object
- Detection of contours
- An intimate user via social media
Grayscale Frame
- Grayscale conversion is like our old black and white tv. It converts our color frame into a monochromic form.
- grayscale conversion is an easy way to calculate the difference in intensity.
- It is mostly used in image and video processing to identify objects in a shorter time.
Difference Frame
The difference frame shows the difference of intensities of the frame1 to the frame2
Threshold Frame
If the intensity difference for a particular pixel is more than 30 then that pixel will be white and if the difference is less than 30 that pixel will be black.
Color Frame
In the current frame, if the object is moving we noticed that one green color box is surrounded in that movement place.
Intimate to users
Once the program detects the object is moving, then suddenly inmate to the user via social media. In this case, I use WhatsApp.
Program using Python
#Motion Detection and intimate to user
import cv2
import pywhatkit
count = 0
cam = cv2.VideoCapture(0)
while cam.isOpened():
ret, frame1 = cam.read()
ret, frame2 = cam.read()
diff = cv2.absdiff(frame1, frame2)
gray = cv2.cvtColor(diff, cv2.COLOR_RGB2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
_, thresh = cv2.threshold(blur, 30, 255, cv2.THRESH_BINARY)
dilated = cv2.dilate(thresh, None, iterations=3)
contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
if cv2.contourArea(c) < 5000:
continue
count += 1
x, y, w, h = cv2.boundingRect(c)
cv2.rectangle(frame1, (x, y), (x + w, y + h), (0, 255, 0), 2)
print(count)
if count == 0:
pass
elif count % 10 == 0: # After 10 movements it will send message
# Give a whatsapp Number
pywhatkit.sendwhatmsg_instantly('+91xxxxxxxxxx','Motion was detected')
if cv2.waitKey(10) == ord('q'):
break
# Displaying image in gray_scale
cv2.imshow("Gray Frame", gray)
# Displaying the difference
cv2.imshow("Difference Frame", diff)
# Displaying the intensity
cv2.imshow("Threshold Frame", thresh)
# Displaying color frame with contour
cv2.imshow("Color Frame", frame1)
# Destroying all the windows
cv2.destroyAllWindows()
My Previous Blog
How to Create and Extract Zip file in Python: https://iterathon.tech//how-to-create-and-extract-zip-file-in-python/
LEARN SOMETHING NEW ❣