1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo môn học thị giác máy tính đề tài tìm hiểu và cài đặt simpecv

16 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÁO CÁO MÔN HỌC

THỊ GIÁC MÁY TÍNH

Đề tài: Tìm hiểu và cài đặt SimpeCV

Giảng viên hướng dẫn: Trương Minh Đức

Nhóm 1:

Sinh viên thực hiệnMã sinh viên

Nguyễn Huy Quang B19DCDT176Nguyễn Phan Huy TânB19DCDT189Hà Đức MạnhB19DCDT137Trần bảo NamB19DCDT156Lê Đình Thành LongB19DCDT133

Hà Nội, 2023

Trang 2

LỜI NÓI ĐẦU

Lời đầu tiên chúng em xin gửi lời cảm ơn đến Học viện Công nghệ Bưu chính Viễnthông khi đã đưa môn học này vào chương trình giảng dạy Đặc biệt, nhóm em xin gửi lờicảm ơn đến thầy Dương Minh Đức đã dạy dỗ, rèn luyện và truyền đạt những kiến thứcquý báu cho nhóm em cũng như các nhóm khác trong lớp trong suốt thời của môn học.Trong lớp học của thầy, chúng em đã được tiếp thu thêm nhiều kiến thức bổ ích, học tậpđược tinh thần làm việc nghiêm túc, hiệu quả Đây thực sự là những điều rất cần thiếtcho quá trình học tập và công tác sau này của chúng em

Thời lượng môn học không nhiều, mặc dù đã có cố gắng nhưng những hiểu biếtvà kỹ năng về môn học này của em còn hạn chế Do đó, bài báo cáo của nhóm chúng emcó thể còn có những thiếu sót và những chỗ chưa chính xác, kính mong thầy xem xét vàgóp ý giúp bài báo cáo của nhóm chúng em được hoàn thiện hơn

Nhóm chúng em xin chân thành cảm ơn!

Hà Nội, ngày 22 tháng 4 năm 2023

Trang 3

III Ứng dụng của simpleCV 5

IV Ưu điểm 6

V Nhược điểm 7

IV.Cài đặt SimpleCV 8

1 Cài SimpleCV trên Windows 8

2 Một số phần mềm hỗ trợ 10

3 Cách cài đặt SimpleCV trên ubuntu 11

V.Hướng dẫn sử dụng simpleCV bằng 1 số ví dụ cơ bản 12

VI.Ví dụ của nhóm về SimpleCV 13

Trang 4

I Simple CV là gì ?

SimpleCV là một thư viện mã nguồn mở được viết bằng ngôn ngữ Python để xử lýảnh và video Nó cung cấp các công cụ để xử lý ảnh, phân tích hình ảnh, nhận dạngkhuôn mặt và các đối tượng khác, cũng như thực hiện các tác vụ khác liên quan đến xửlý ảnh và video SimpleCV hỗ trợ cho nhiều dạng định dạng ảnh phổ biến như JPEG, PNG,BMP, GIF

Hình 1 : SimpleCV là gì?

SimpleCV được xây dựng trên nhiều thư viện mã nguồn mở khác, bao gồm

SOpenCV, Pygame, PIL (Pillow), numpy, và scipy Nó cung cấp một cách đơn giản để thựchiện các công việc xử lý ảnh phức tạp mà không cần nhiều kiến thức chuyên sâu về xử lý ảnh hay các thuật toán phức tạp.

SimpleCV cũng hỗ trợ các thiết bị ngoại vi như máy ảnh và webcam để thực hiệncác tác vụ xử lý trực tiếp trên hình ảnh từ các nguồn này Đây là một thư viện hữu íchcho các ứng dụng liên quan đến xử lý hình ảnh, nhận dạng đối tượng và thị giác máytính.

Trang 5

Hình 2 : SimpleCV hỗ trợ rất nhiều các thiết bị ngoại viII Lịch sử phát triển

Simple CV (Computer Vision) là một phần của lĩnh vực trí tuệ nhân tạo (AI) và xửlý ảnh số Nó liên quan đến việc sử dụng máy tính để nhận dạng, phân loại và hiểu cáchình ảnh Simple CV đã được phát triển trong nhiều năm và có nguồn gốc từ các kỹ thuậtxử lý ảnh truyền thống, bao gồm việc sử dụng các mô hình toán học để xác định các đặctrưng của hình ảnh và phân loại chúng.

Trong những năm gần đây, với sự phát triển của deep learning, simple CV đãđược đẩy mạnh một cách đáng kể Deep learning là một phương pháp học máy trong đócác mô hình học tập được xây dựng trên nền tảng của các lớp thần kinh nhân tạo sâu.Các mô hình này được huấn luyện để tự động học các đặc trưng từ dữ liệu huấn luyện vàsử dụng chúng để phân loại và dự đoán các đối tượng trong hình ảnh.

Hình 3 : Lịch sử phát triển SimpleCV

Với sự phát triển của các mô hình deep learning như Convolutional NeuralNetworks (CNNs), simple CV đã trở nên đáng tin cậy hơn trong việc phân tích hình ảnh.Các mô hình CNN có khả năng xử lý các hình ảnh lớn và phức tạp và cũng được sử dụngrộng rãi trong các ứng dụng như phân loại hình ảnh, nhận dạng khuôn mặt, nhận dạngchữ viết tay và nhiều ứng dụng khác.

Trang 6

III Ứng dụng của simpleCV

● Xử lý ảnh và video: SimpleCV cung cấp các công cụ để xử lý ảnh và video, chophép người dùng thực hiện các tác vụ như chỉnh sửa, lọc và chuyển đổi hình ảnh.

● Phân tích hình ảnh: SimpleCV cung cấp các công cụ để phân tích hình ảnh, chophép người dùng tìm kiếm và phát hiện các đối tượng trong hình ảnh, đo kíchthước, tính toán độ tương đồng và nhiều hơn nữa.

Trang 7

● Thực hiện các tác vụ liên quan đến thị giác máy tính: SimpleCV là một công cụhữu ích cho các ứng dụng liên quan đến thị giác máy tính, bao gồm robot, xe tựhành và các ứng dụng y tế và an ninh.

Hình 6 : Thị giác máy tínhIV Ưu điểm

● Đơn giản: Simple CV không yêu cầu nhiều kiến thức chuyên sâu về toán học haylập trình, do đó có thể áp dụng được cho nhiều người và tình huống khác nhau.

● Hiệu quả: Simple CV có thể đưa ra kết quả tốt với số lượng dữ liệu nhỏ Điều nàylà do Simple CV có khả năng xử lý dữ liệu đơn giản và giảm thiểu overfitting.

Hình 7 : Ưu điểm của SimpleCV

Trang 8

● Thời gian đào tạo nhanh: Simple CV cung cấp các thuật toán đơn giản và hiệu quảđể đào tạo mô hình máy học Do đó, thời gian đào tạo mô hình tương đối nhanh.● Dễ hiểu: Simple CV cho phép các nhà phát triển dễ dàng hiểu và giải thích cách

mô hình hoạt động Điều này có thể giúp giảm thiểu sai sót và cải thiện hiệu quảcủa mô hình.

● Tính di động: Simple CV có thể chạy trên nhiều thiết bị khác nhau, bao gồm cả cácthiết bị có tài nguyên hạn chế như điện thoại thông minh.

V Nhược điểm

● Tốc độ xử lý chậm: SimpleCV sử dụng Python làm ngôn ngữ chính, vì vậy tốc độxử lý của nó không nhanh bằng các thư viện thị giác máy tính khác được viết bằngC++ hoặc CUDA.

Hình 8 : Nhược điểm của SimpleCV

● Không hỗ trợ GPU: SimpleCV không hỗ trợ tính toán trên GPU, điều này làmgiảm hiệu năng xử lý của thư viện.

● Không tối ưu cho ứng dụng thực tế: SimpleCV thường được sử dụng để giảng dạyvà nghiên cứu, không phải để triển khai các ứng dụng thực tế.

Trang 9

● Không có cập nhật thường xuyên: SimpleCV không được phát triển và cập nhậtthường xuyên, do đó có thể không hỗ trợ được các tính năng mới nhất trong thịgiác máy tính.

VI Cài đặt SimpleCV

1.Cài SimpleCV trên Windows

SimpleCV là một thư viện Python, vì vậy trước tiên bạn cần phải cài đặt Python trên máy tính của mình Chú ý cài cần cài python 3.4-3.6 vì các phiên bản cao hơn đã không còn tương thích với SimpleCV.

Download Python từ trang chủ: https://www.python.org/

Hình 9 : Các phiên bản của Python

Chọn phiên bản phù hợp với máy tính, sau đó chạy file cài đặt đã download.

Trang 10

Hình 10 : thêm biến môi trường cho python

Tại cửa sổ hiện lên, tick chọn Add Python 3.7 to PATH để Python được tự độngthêm vào biến môi trường, sau đó bấm vào Install Now để bắt đầu cài đặt.

Sau khi cài đặt hoàn tất, có thể kiểm tra python đã cài đặt thành công chưa bằngcách mở command line lên và chạy thử lệnh sau để kiểm tra.

Nhập Lệnh: “Python”

Hình 11 : Cài dặt Python thành công

Tại cửa sổ nếu thấy thông báo tương tự tức là python đã được cài đặt thành công vào máy tính

Trang 11

2.Một số phần mềm hỗ trợ

Trong quá trình cài đặt SimpleCV, bạn có thể cần phải cài đặt các phần mềm hỗ trợ như OpenCV, Pygame và các thư viện liên quan khác Để cài đặt các phần mềm này, bạn có thể chạy các lệnh sau:

Hình 12: Cài dặt các thư viện hỗ trợ

Tại cửa sổ command thấy các dòng chữ này tức là đã cài thành công

Hình 13 : Cài dặt thành công các thư viện

Trang 12

Cuối cùng chạy Chạy dòng lệnh pip install SimpleCV

Hình 14 : Cài dặt thành công SimpleCV

3.Cách cài đặt SimpleCV trên ubuntu

Mở terminal và cài python bằng dòng lệnh : sudo apt-get install python3

Cài đặt các gói phụ trợ cho SimpleCV bằng lệnh :

sudo apt-get install python3-setuptools python3-pip python3-opencv libopencv-dev python3-numpy python3-scipy python3-matplotlib ipython3

Hình 15 : Cửa sổ màn hình khi cài đặt thành công

Trang 13

Ta có thể kiểm tra lại đã cài đặt thành công chưa bằng lệnhpython3 (enter)

from SimpleCV import Image# Đọc ảnh từ file

img = Image("image.jpg")# Hiển thị ảnh

● Xử lí ảnh

Trang 14

ảnh, tìm cạnh, phát hiện đối tượng, v.v Ví dụ dưới đây minh họa cách chuyển ảnh sang ảnh xám và tìm cạnh trong ảnh.

from SimpleCV import Image# Đọc ảnh từ file

img = Image("image.jpg")# Chuyển ảnh sang ảnh xámgray_img = img.grayscale()# Tìm cạnh trong ảnh xámedges_img = gray_img.edges()# Hiển thị ảnh sau khi xử lýedges_img.show()

VIII Ví dụ của nhóm về SimpleCV

Trang 15

import simplecvimport cv2

import numpy as npimport face_recognitionimport os

from datetime import datetimepath = 'ImagesAttendance'images = []

classNames = []

myList = os.listdir(path)print(myList)

for cl in myList:

curImg = cv2.imread(f'{path}/{cl}') images.append(curImg)

classNames.append(os.path.splitext(cl)[0])print(classNames)

def findEncodings(images): encodeList = []

for img in images:

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# kiểm tra xem ảnh đầu vào có chứa khuôn mặt hay không

faceLocs = face_recognition.face_locations(img) if len(faceLocs) == 0:

continue

encode = face_recognition.face_encodings(img, faceLocs)[0] encodeList.append(encode)

return encodeListdef markAttendance(name):

with open('Attendance.csv', 'r+') as f: myDataList = f.readlines()

nameList = []

for line in myDataList: entry = line.split(',') nameList.append(entry[0]) if name not in nameList: now = datetime.now()

dtString = now.strftime('%H:%M:%S') f.write(f'\n{name},{dtString}')

encodeListKnown = findEncodings(images)print('Encoding Complete')

cap = cv2.VideoCapture(0)while True:

success, img = cap.read()

imgS = cv2.resize(img, (0, 0), None, 0.25, 0.25) imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB)

# tìm vị trí khuôn mặt trên khung hình hiện tại

facesCurFrame = face_recognition.face_locations(imgS)

# mã hóa các khuôn mặt tìm được

encodesCurFrame = face_recognition.face_encodings(imgS, facesCurFrame)

Trang 16

# so sánh với danh sách các khuôn mặt đã biết

matches = face_recognition.compare_faces(encodeListKnown, encodeFace)

faceDis = face_recognition.face_distance(encodeListKnown, encodeFace)

# tìm khuôn mặt khớp gần nhất

matchIndex = np.argmin(faceDis) if matches[matchIndex]:

name = classNames[matchIndex].upper()

# đánh dấu thời gian hiện tại nếu chưa đánh dấu cho tên này

markAttendance(name) else:

name = 'Unknown'

# vẽ khung xung quanh khuôn mặt không nhận dạng được

y1, x2, y2, x1 = faceLoc

y1, x2, y2, x1 = y1*4, x2*4, y2*4, x1*4

cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), 2)

# vẽ tên cho khuôn mặt không nhận dạng được

cv2.rectangle(img, (x1, y2-35), (x2, y2), (0, 0, 255), cv2.FILLED)

cv2.putText(img, name, (x1+6, y2-6),

cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2)

cv2.imshow('Webcam', img) cv2.waitKey(1)

Ngày đăng: 26/06/2024, 15:46

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w