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

PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE

22 151 0

Đ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

Định dạng
Số trang 22
Dung lượng 860,03 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRANG 2 PHẦN MỀM ỨNG DỤNG XỬ LÝ ẢNH VÀ QR CODE ĐIỂM DANH NHÂN VIÊN QUA NGÔN NGỮ PYTHON CODE CUỐI TRANG MỤC LỤC DANH MỤC HÌNH VẼ 0 CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 1 1 1 Lý do chọn đề tài 1 1 2 Mục tiêu nghiên cứu 1 1 3 Đối tượng nghiên cứu 1 1 4 Phạm vi nghiên cứu 2 1 5 Dự kiến kết quả 2 CHƯƠNG 2 CỞ SỞ LÝ THUYẾT 3 2 1 Python và IDE Pycharm 3 2 2 Thư viện Open CV 3 2 3 Thư viện xử lý ảnh đa luồng Tkinter 4 CHƯƠNG 3 GIẢI THUẬT VÀ ĐIỀU KHIỂN 6 3 1 Flowchart 6 3 2 Hoạt động của chương trình 7 3 3 Code chươ.

Trang 1

PHẦN MỀM ỨNG DỤNG XỬ LÝ ẢNH VÀ

QR CODE ĐIỂM DANH NHÂN VIÊN

QUA NGÔN NGỮ PYTHON

CODE CUỐI TRANG

Trang 2

DANH MỤC HÌNH VẼ ……….……….0

CHƯƠNG 1 : TỔNG QUAN ĐỀ TÀI 1

1.1 Lý do chọn đề tài : 1

1.2 Mục tiêu nghiên cứu : 1

1.3 Đối tượng nghiên cứu : 1

1.4 Phạm vi nghiên cứu : 2

1.5 Dự kiến kết quả : 2

CHƯƠNG 2 : CỞ SỞ LÝ THUYẾT 3

2.1 Python và IDE Pycharm : 3

2.2 Thư viện Open-CV : 3

2.3 Thư viện xử lý ảnh đa luồng Tkinter : 4

CHƯƠNG 3 : GIẢI THUẬT VÀ ĐIỀU KHIỂN 6

3.1 Flowchart : 6

3.2 Hoạt động của chương trình : 7

3.3 Code chương trình : 8

3.3.1 Code nhận diện QR code và scan QR code : 8

3.3.2 Code tổng quan để phát hiện xử lý ảnh : 9

3.3.4 Code để nhận diện nhân viên ( check-in ) 10

3.4 Giao diện APP : 12

3.4.1 Giao diện tổng quan : 12

Trang 3

3.4.2 Giao diện QR Tools : 13

CHƯƠNG 4 : THỰC NGHIỆM 14

4.1 Tạo một file QR Code bất kì bằng QR Tools : 14

4.2 Train model và check in : 15

CHƯƠNG 5 : KẾT LUẬN 17

5.1 Ưu điểm : 17

5,2 Nhược điểm : 17

5.3 Hướng phát triển : 17

TÀI LIỆU THAM KHẢO 18

Trang 4

Hình 1 : Khai báo tkinter , tạo một cửa sổ đơn giảnHình 2 : Kết quả thu được

Hình 3 : Flowchart cho QR Tools

Hình 4 : Flowchart cho Check-in điểm danh

Hình 5 : Flowchart cho Exit

Hình 6 : Giao diện tổng quan

Hình 7 : Giao diện QR Tools

Hình 8 : Kết quả thu được

Hình 9 : Nhập ID và Name

Hình 10 : Tệp ảnh samples thu được

Hình 11 : Kết quả nhận được

Trang 6

CHƯƠNG 1 : TỔNG QUAN ĐỀ TÀI

1.1Lý do chọn đề tài :

- Năm 2019 , cả thế giới xuất hiện loại virus mang tên Virus Corona Virus này mang đến dịch bệnh và cướp đi hàng triệu sinh mạng cũng như khiến hàng triệu người thất nghiệp , ảnh hưởng nặng nề đến nền kinh tế thế giới và của nước ta Năm 2021 vừa qua là ảnh hưởng nặng nề nhất mà dịch bệnh mang đến nước ta với biến chủng Delta mới Cả nước bị khóa chặt nền kinh tế , nhà nhà có người thân mất , nặng nề đau thương cũng như ảnh hưởng đến nền giáo dục nước nhà ,đối với việc ra trường chậm tiến độ của sinh viên , … Hầu như mọi ngành , mọinghề đều bị ảnh hương nghiêm trọng Cơ chế lây lan của virus corona là tiếp xúc gần giữa mọi người với nhau , qua nước bọt , qua các hành vi chào hỏi hay trò chuyện…Do vậy , nhiều ứng dụng đã ra đời , mục đích để hạn chế tiếp xúc của mọi người với nhau và các vật dụng xung quanh Chính vì thế , em chọn đề tài tạo app điểm danh ứng dụng xử lý ảnh và Qr code qua ngôn ngữ python để phần nào tạo được một ứng dụng có thể áp dụng và giảm bớt đi tình trạng hiện tại

- Không những vậy , ứng dụng nhiều trên ngôn ngữ python giúp ta tiến gần hơn với kiến thức hiện đại của thế giới trên phương diện AI và Machine Learning Tạo tiền đề cho việc tạo những ứng dụng hữu ích hơn sau này

1.2 Mục tiêu nghiên cứu :

- Tạo ra ứng dụng với khả năng tạo và đọc được QR code

- Mục tiêu thứ hai là điểm danh nhân viên ứng dụng thư viện open-cv python Tạo được chương trình gồm có : lấy mẫu ảnh ( samples ) , train ảnh ( cho máy tính học ) và tiến hành check-in ( điểm danh nhân viên )

- Mục tiêu thứ ba là tạo giao diện sử dụng thân thiện với người dùng

1.3 Đối tượng nghiên cứu :

Trang 7

TRANG 2

- Python code

- Pycharm IDE dành cho python

- Thư viện Qrcode trên python

- Thư viện dùng để xử lý ảnh và các thao tác liên quan đến ảnh ( opencv , numpy)

- Cuối cùng là tạo giao diện đa luồng với thư viện tkinter cho ra một giao diện thân thiện với người dùng

1.4 Phạm vi nghiên cứu :

- Tạo ra app có thể nhúng được Do sử dụng tkinter nên khi app hoàn thiện ta có thể tìm cách áp dụng giao diện sản phẩm và source code vào các nền tảng nhúngnhư : có thể áp dụng vào các loại robot thông minh , các giao diện với màn HMIhay Raspberry Pi , … để tại những khu vực công cộng mà người dùng không cần trực tiếp chạm

Trang 8

CHƯƠNG 2 : CỞ SỞ LÝ THUYẾT

2.1 Python và IDE Pycharm :

- Ngôn ngữ lập trình được chọn để sử dụng trong đề tài là Python Đây là một ngôn ngữ được ra đời vào năm 1980 và được phát hành từ đầu năm 1991 , do Guido Van Rossum tạo nên Python là một ngôn ngữ lập trình hướng đối tượng( OOP ) được sử dụng rộng rãi trong xử lý ảnh , AI và machine learning ( máy học ) hiện nay Ngôn ngữ này thuộc về ngôn ngữ cấp cao , do đó dễ ứng dụng với người dùng Hơn thế , đây là một ngôn ngữ có mã nguồn mở Điều này là điểm mạnh lớn cho python , bởi do có rất nhiều cộng đồng ( community ) hỗ trợcũng như giúp đỡ lẫn nhau Điển hình là Stackoverflow là một cộng đồng mạnh

mẽ chuyên giải quyết và giúp đỡ lẫn nhau cho những vướng mắc mà mọi người gặp phải

- Do tính chất dễ sử dụng và đơn giản , dễ mở rộng mà đây được xem là một ngônngữ mạnh ở thời điểm hiện tại giải quyết hầu hết các vấn đề về website , AI , Machine learning , xử lý ảnh , …

- Pycharm là một IDE mạnh , hỗ trợ rất tốt cho ngôn ngữ Python Do tính chuyênnghiệp , có các vens ( môi trường ảo ) , có bản miễn phí dành cho cộng đồng nên pycharm được hầu hết công ty lớn cũng như trường học ứng dụng cho sinh viên cũng như nhân viên sử dụng

2.2 Thư viện Open-CV :

- Tương tự python , thư viện open-cv cũng có mã nguồn mở Đây là một thư viện

được tạo nên cho việc xử lý ảnh Thư viện hỗ trợ rất tốt cho các vấn đề liên quan đến computer vision ( thị giác máy tính ) cũng như có thể sử dụng GPU tăng tốc cho thời gian thực Real-time khiến việc xử lý ảnh qua camera nhanh hơn và tốt hơn rất nhiều

Trang 9

TRANG 4

- Thư viện này hỗ trợ cho rất nhiều ngôn ngữ như : C++ , C# , Python , java , lập

trình android , C++ , ….tùy theo nhu cầu và loại code mà người dùng sử dụng

- Ngoài ra ta có thể sử dụng ngôn ngữ này áp dụng vào lập trình nhúng cho robot

phát hiện vật cản hoặc xử lý hình ảnh theo các vấn đề liên quan như : qr code , nhận diện người đeo khẩu trang nơi công cộng , nhận diện điểm danh nhân viên , học sinh …

- Một số ứng dụng của open-cv : kiểm tra và giảm sát xe tự động ( chụp lại bảng

số xe ) ; các vấn đề liên quan đến xử lý phim ảnh , video ; robot giám sát và xe hơi tự lái ; các ứng dụng điểm danh qua khuôn mặt , …

2.3 Thư viện xử lý ảnh đa luồng Tkinter :

- Đây là thư viện dùng để tạo giao diện cho source code mà ta đã viết

- Từ đó , người dùng có một giao diện thân thiện và dễ sử dụng , dễ dàng tiếp cận với những tính năng mà lập trình viên đã viết

- Hơn thế , người dùng còn có thể áp dụng giao diện này lên robot hoặc các màn hình HMI để tiện sử dụng ở những nơi công cộng

Hình 1 : Khai báo tkinter , tạo một cửa sổ đơn giản

Trang 10

Hình 2 : Kết quả thu được

Trang 11

TRANG 6

CHƯƠNG 3 : GIẢI THUẬT VÀ ĐIỀU KHIỂN

3.1 Flowchart :

- Chia ra làm 3 lưu đồ flowchart cho 5 nút chức năng :

- Lưu đồ cho nút QR tools :

Hình 3 : Flowchart cho QR Tools

Trang 12

- Lưu đồ cho xử lý ảnh :

Hình 4 : Flowchart cho Check-in điểm danh

- Lưu đồ cho nút Exit ( thoát khỏi chương trình )

Hình 5 : Flowchart cho Exit

3.2 Hoạt động của chương trình :

- Khi người dùng nhấn nút QR Tools , sẽ được di chuyển đến cửa sổ tạo qr code

và có các chức năng tạo và quét ( scan ) qr code

- Khi người dùng muốn xử lý ảnh thì theo ba bước :

+ Bước 1 : Nhấm samples để lấy mẫu nhân viên train cho máy tính

Trang 13

TRANG 8

+ Bước 2 : Nhấn nút Train để máy tính train dữ liệu nhân viên

+ Bước 3 : Mở check-in để nhận diện nhân viên

ret , img = cap.read()

for barcode in decode(img):

myData = barcode.data.decode( 'utf-8' )

print(myData)

pts = np.array([barcode.polygon] , np.int32)

pts = pts.reshape((-1 , 1 , 2))

cv2.polylines(img , [pts] , True, (255 , 0 , 255) , 5

cv2.imshow( 'QRCode' , img)

if (cv2.waitKey(1) & 0xff == ord( 'q' )):

Trang 14

window = Toplevel(check_app)

window.geometry( '520x150' )

window.title( "QR CODE Generator" )

window.iconbitmap( 'logoNTP.ico' )

window.resizable( False, False )

link = Label(window , text = "Enter Your Data" , fg = 'black' , font = 'arial 10' )

# create button save & create QR code

btn_save = Button(window , width =10 , text = "Browse" , command =open_path) btn_save.place( x 300 , y 70)

btn_create_QR = Button(window , width =10 , text = "Create" ,

Trang 15

check_app.resizable( False, False )

name = Label(check_app , text = "CHECK-IN APP" , fg = "#0000FF" , bd =0 ,

bg = '#D8E7EE' )

name.config( font =( "Transformers Movie" , 30))

name.pack( pady =20) #cachtructhangdung 10 donvi

name_1 = Label(check_app , text = "NGUYEN TAN

recognizer = cv2.face.LBPHFaceRecognizer_create()

recognizer.read( 'Recognizer/traindata.yml' )

def getProfile (id) :

Trang 16

conn = sqlite3.connect( '/Users/iamnt/Desktop/QR_Pro/Data/data.db' ) query = "SELECT * FROM people WHERE ID=" + str(id)

ret , frame = cap.read()

gray = cv2.cvtColor(frame , cv2.COLOR_BGR2GRAY)

- Ta sử dụng thư viện numpy để xử lý ảnh về dạng ma trận

- Sqlite3 để kết nối với database mà ta đã tạo từ trước từ đó lấy ra ID và hình từ tệp file đã train

- Biến confidence chỉ độ chính xác giống với tệp đã train

- Nếu vòng lặp While luôn đúng thì camera sẽ mở và tiến hành xử lý ảnh nhận được và so sánh với tệp đã train ( file csv)

- Nếu confidence < 40% thì tiến hành lấy ID và lấy profile từ tệp data

- Còn lại thì không nhận diện được

Trang 18

Hình 6 : Giao diện tổng quan

3.4.2 Giao diện QR Tools :

Hình 7 : Giao diện QR Tools

Trang 19

TRANG 14

CHƯƠNG 4 : THỰC NGHIỆM

4.1 Tạo một file QR Code bất kì bằng QR Tools :

Hình 7 : Tạo QR Code với QR Tools

Hình 8 : Kết quả thu được

Trang 20

4.2 Train model và check in :

Hình 9 : Nhập ID và Name

Hình 10 : Tệp ảnh samples thu được

Trang 21

TRANG 16

CHƯƠNG 5 : KẾT LUẬN

5.1 Ưu điểm :

- Phát hiện và lấy mẫu nhạy , độ chính xác tốt ở điều kiện đủ sáng

- Có QR tools tích hợp trong app để tiến hành tạo và đọc qr code

- Ứng dụng được vào thời kì dịch bệnh

5,2 Nhược điểm :

- Phụ thuộc vào chất lượng camera và điều kiện sáng nên ở những điều kiện thiếu

sáng còn gặp hạn chế về độ đo đạc

- Việc linh hoạt giữa những cửa sổ còn hạn chế

- Còn phát sinh nhiều lỗi do xung đột chương trình như tràn bộ nhớ lúc chuyển

giao trạng thái

5.3 Hướng phát triển :

- Tích hợp phát hiện người có đeo khẩu trang hay không nơi công cộng

- Phát hiện và cảnh báo người hút thuốc ở bệnh viện

- Tích hợp với robot ( ví dụ ohmni ) để phát triển các tính năng trên cũng như mở

rộng như : hỗ trợ bác sĩ , y tá trong chăm sóc bệnh nhân , đo đạc nhiệt độ , sp02 cho bệnh nhân , hướng dẫn khách tham quan …

Trang 22

TÀI LIỆU THAM KHẢO

[1] Code để train và nhận diện khuôn mặt nhân viên :

https://www.youtube.com/channel/UCtD7PVV6oW6xFNE8j0gsxtA

[2] Tkinter đa luồng để tạo giao diện app :

https://www.youtube.com/c/M%C3%ACAIblog

Ngày đăng: 24/04/2022, 23:40

HÌNH ẢNH LIÊN QUAN

Hình 1: Khai báo tkinter , tạo một cửa sổ đơn giản - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 1 Khai báo tkinter , tạo một cửa sổ đơn giản (Trang 9)
- Một số ứng dụng của open-cv : kiểm tra và giảm sát xe tự độn g( chụp lại bảng số xe ) ; các vấn đề liên quan đến xử lý phim ảnh , video ; robot giám sát và xe  hơi tự lái ; các ứng dụng điểm danh qua khuôn mặt , ….. - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
t số ứng dụng của open-cv : kiểm tra và giảm sát xe tự độn g( chụp lại bảng số xe ) ; các vấn đề liên quan đến xử lý phim ảnh , video ; robot giám sát và xe hơi tự lái ; các ứng dụng điểm danh qua khuôn mặt , … (Trang 9)
Hình 3: Flowchart cho QR Tools - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 3 Flowchart cho QR Tools (Trang 11)
Hình 4: Flowchart cho Check-in điểm danh - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 4 Flowchart cho Check-in điểm danh (Trang 12)
- Sqlite3 để kết nối với database mà ta đã tạo từ trước từ đó lấy ra ID và hình từ tệp file đã train  - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
qlite3 để kết nối với database mà ta đã tạo từ trước từ đó lấy ra ID và hình từ tệp file đã train (Trang 16)
Hình 6: Giao diện tổng quan - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 6 Giao diện tổng quan (Trang 17)
Hình 7: Giao diện QR Tools - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 7 Giao diện QR Tools (Trang 18)
Hình 8: Kết quả thu được - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 8 Kết quả thu được (Trang 19)
Hình 7: Tạo QRCode với QR Tools - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 7 Tạo QRCode với QR Tools (Trang 19)
Hình 9: Nhập ID và Name - PHẦN mềm ỨNG DỤNG xử lý ẢNH và QR CODE điểm DANH NHÂN VIÊN , có CODE
Hình 9 Nhập ID và Name (Trang 20)

TỪ KHÓA LIÊN QUAN

w