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 1 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

Thông tin cơ bản

Tiêu đề Tìm hiểu và cài đặt SimpleCV
Tác giả Nguyễn Huy Quang, Nguyễn Phan Huy Tân, Hà Đức Mạnh, Trần Bảo Nam, Lê Đình Thành Long
Người hướng dẫn Trương Minh Đức
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Thị Giác Máy Tính
Thể loại Báo cáo môn học
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 16
Dung lượng 2,62 MB

Nội dung

Nó cung cấp các công cụ để xử lý ảnh, phân tích hình ảnh, nhận dạng khuô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 cũng h

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ện Mã sinh viên

Nguyễn Huy Quang B19DCDT176 Nguyễn Phan Huy Tân B19DCDT189

Hà Đức Mạnh B19DCDT137 Trần bảo Nam B19DCDT156

Lê Đình Thành Long B19DCDT133

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ễn thô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ời cả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ức quý 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ết cho 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ết

và 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 em

có 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

Mục lục

LỜI NÓI ĐẦU 1

Mục lục 2

I Simple CV là gì ? 3

II Lịch sử phát triển 4

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ạng khuô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ực hiệ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ện cá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 ích cho 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áy tính

Trang 5

Hình 2 : SimpleCV hỗ trợ rất nhiều các thiết bị ngoại vi

II 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ác hì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ật

xử 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 đặc trư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 Neural Networks (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ụng rộ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ạng chữ 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, cho phé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, cho phé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ích thước, tính toán độ tương đồng và nhiều hơn nữa

Hình 4 : Phân tích hình ảnh

● Nhận dạng khuôn mặt và đối tượng: SimpleCV hỗ trợ nhận dạng khuôn mặt và các đối tượng khác trong hình ảnh, cho phép người dù

● ng phân tích và định vị các đối tượng cụ thể trong hình ảnh

Hình 5 : Nhận diện khuôn mặt

● Hỗ trợ các thiết bị ngoại vi: SimpleCV hỗ trợ các thiết bị ngoại vi như máy ảnh và webcam để thực hiện các tác vụ xử lý trực tiếp trên hình ảnh từ các nguồn này

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ính

IV Ư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 hay lậ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ày

là 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ác thiế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ằng C++ 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àm giả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ạy

và 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ật thườ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ự động thê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ằng cá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ệnh

python3 (enter)

>>import SimpleCV

Hình 16 : Kiểm tra đã cái đặt thành công SimpleCV chưa VII Hướng dẫn sử dụng simpleCV bằng 1 số ví dụ cơ bản

● Import

Người dùng có thể import thư viện SimpleCV vào chương trình Python của mình bằng cách sử dụng lệnh import

import SimpleCV

● Đọc và hiển thị ảnh

Chúng ta có thể đọc ảnh từ file hoặc từ nguồn dữ liệu khác như camera, webcam… bằng cách sử dụng hàm Image() của SimpleCV Sau đó, có thể hiển thị ảnh bằng cách gọi phương thức show() trên đối tượng ảnh

from SimpleCV import Image

# Đọc ảnh từ file

img = Image("image.jpg")

# Hiển thị ảnh

img.show()

● 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ám

gray_img = img.grayscale()

# Tìm cạnh trong ảnh xám

edges_img = gray_img.edges()

# Hiển thị ảnh sau khi xử lý

edges_img.show()

● Lưu ảnh

Sau khi xử lý ảnh, người dùng có thể lưu ảnh vào file mới bằng cách gọi phương thức save() trên đối tượng ảnh và truyền vào đường dẫn của file mới

from SimpleCV import Image

# Đọc ảnh từ file

img = Image("image.jpg")

# Chuyển ảnh sang ảnh xám

gray_img = img.grayscale()

# Tìm cạnh trong ảnh xám

edges_img = gray_img.edges()

# Lưu ảnh đã xử lý vào file mới

edges_img.save("edges_image.jpg")

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

Trang 15

import simplecv

import cv2

import numpy as np

import face_recognition

import os

from datetime import datetime

path = '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 encodeList

def 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

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

TÀI LIỆU LIÊN QUAN

w