Компьютерное зрение:

Создание машин для просмотра и интерпретации мира. Мы собираемся узнать, как захватывать, удалять шумы, увеличивать, предварительно обрабатывать, подготавливать изображения и входные видеоданные для построения моделей машинного обучения. Всю эту неделю мы будем обсуждать различные важные моменты, которым обычно вас не учат на уроках.

Часть 1. Обеспечение захвата входных данных компьютерного зрения и сообщения об ошибках

На практике вот что для вас означает «бесплатный обед»:

Ни один алгоритм не может решить все ваши проблемы с наукой о данных лучше, чем любой другой алгоритм.

Четко поймите данную проблему науки о данных и связанные с ней данные, чем с энтузиазмом приступайте к построению модели.

Все решения для науки о данных создаются с использованием точных данных для их обучения.

В науке о данных простое будет неподходящим, более сложное, как правило, переобученным, лучше всего оставаться посередине двух крайних значений смещения-дисперсии.

Попробуйте несколько моделей и перекрестно проверьте лучшие из них — успешная стратегия.

Компьютерное зрение состоит из двух устройств. Устройство ввода (камера) и устройство интерпретации (компьютер).

Установка opencv очень проста с anaconda.

конда установить opencv

Как предупредить пользователя, если ваша камера отключена на производстве?

import numpy as np
import cv2
cap = cv2.VideoCapture(0) # localhost
#cap = cv2.VideoCapture('rtsp://username:[email protected]/1') #remote
while(cap.isOpened()):
     
    while True: # keep the cam session alive
          
        ret, img = cap.read()
        cv2.imshow('my camera', img) #  video capture in a window.
        if cv2.waitKey(30) & 0xff == ord('q'): # press q to exit
            break
              
    cap.release() # release the video object.
    cv2.destroyAllWindows() # closes the active video capture window
else:
    print("Alert ! Camera disconnected") # alert on the screen

Как сообщить об отказе камеры по электронной почте в производстве?

import numpy as np
import cv2
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
     
    while True: # keep the cam session alive
          
        ret, img = cap.read()
        cv2.imshow('my camera', img) # it is showing the video capture in a window.
        if cv2.waitKey(30) & 0xff == ord('q'): # press q to exit
            break
              
    cap.release() # release the video object.
    cv2.destroyAllWindows() # closes the active video capture window
else:
    print("Alert ! Camera disconnected") # alert on the screen
    conn = smtplib.SMTP('enter your server', port_number) # alert over email
    conn.ehlo()
    conn.starttls()
    # Enter the sender's details
    # conn.login('Enter sender \'s gmail address', 'Enter sender\'s password')
    # conn.sendmail('Enter sender\'s gmail address', 'Enter Receiver\'s gmail address','Enter message to be sent')
    conn.login('Your email id', 'password')
    conn.sendmail('sender email id', 'receiver email id','Camera is disconnected')
    conn.quit()

Как отправить сведения о камере во вложении электронной почты, закодированном с помощью Base64, в производстве?

cap = cv2.VideoCapture(0)
while(cap.isOpened()):
     
    while True: # keep the cam session alive
          
        ret, img = cap.read()
        cv2.imshow('my camera', img) # it is showing the video capture in a window.
        if cv2.waitKey(30) & 0xff == ord('q'): # press q to exit
            break
              
    cap.release() # release the video object.
    cv2.destroyAllWindows() # closes the active video capture window
else:
    print("Alert ! Camera disconnected") # alert on the screen
    mail_content = '''Hello,
    This is a test mail.
    In this mail we are sending some attachments.
    The mail is sent using Python SMTP library.
    Thank You
    '''
    file1 = open(r"c:\tmp\file.txt","w")
    L = ["Camera-007 is failed:. \n","Located in Paris Corner\n","IP 1.1.1.1 \n"] 
  
    # \n is placed to indicate EOL (End of Line)
    file1.write("Hello \n")
    file1.writelines(L)
    file1.close()
    #The mail addresses and password
    sender_address = 'Sender Email@*.com'
    sender_pass = 'Your Passcode here'
    receiver_address = 'Receiver Email@*.com'
    #Setup the MIME
    message = MIMEMultipart()
    message['From'] = sender_address
    message['To'] = receiver_address
    message['Subject'] = 'A test mail sent by Python. It has an attachment.'
    #The subject line
    #The body and the attachments for the mail
    message.attach(MIMEText(mail_content, 'plain'))
    attach_file_name = r'C:\tmp\file.txt'
    attach_file = open(attach_file_name, 'rb') # Open the file as binary mode
    payload = MIMEBase('application', 'octate-stream')
    payload.set_payload((attach_file).read())
    encoders.encode_base64(payload) #encode the attachment
    #add payload header with filename
    payload.add_header('Content-Decomposition', 'attachment', filename=attach_file_name)
    message.attach(payload)
    #Create SMTP session for sending the mail
    session = smtplib.SMTP('enter your server', port_number) #use gmail with port
    session.starttls() #enable security
    session.login(sender_address, sender_pass) #login with mail_id and password
    text = message.as_string()
    session.sendmail(sender_address, receiver_address, text)
    session.quit()
    print('Mail Sent')

Мы свяжемся завтра, чтобы узнать, как по-разному обращаться с камерами при разработке и производстве.

Автор приложил максимум усилий и усилий для достаточной проверки точности содержания этого поста. Читатели могут осторожно экспериментировать с ними на свой страх и риск. По любым вопросам обращайтесь по адресу [email protected].

Первоначально опубликовано на https://www.linkedin.com.