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

báo cáo bài thi giữa kỳ lập trình nâng cao thiết kế hệ thống nhận dạng văn bản từ hình ảnh

13 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

Thông tin cơ bản

Tiêu đề Thiết Kế Hệ Thống Nhận Dạng Văn Bản Từ Hình Ảnh
Tác giả Trần Văn Bách
Người hướng dẫn TS. Nguyễn Quang Minh
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Lập Trình Nâng Cao
Thể loại Báo cáo bài thi giữa kỳ
Năm xuất bản 202
Thành phố Hà Nội
Định dạng
Số trang 13
Dung lượng 1,11 MB

Nội dung

LỜI NÓI ĐẦUTrong cuộc sống hiện đại ngày nay chúng ta đang dần thấy các mô hình AI đang giúp đỡ con người rất nhiều trong cuộc sống, có thể kể đến như robot, trợ lý ảo, …Nhận thấy sự tiế

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ-VIỄN THÔNG

BÁO CÁO BÀI THI GIỮA KỲ

Lập Trình Nâng Cao

Đề Bài:

Thiết Kế Hệ Thống Nhận Dạng Văn Bản Từ Hình Ảnh

***

Sinh viên thực hiện:

Giảng viên hướng dẫn: TS.Nguyễn Quang Minh

Hà Nội, tháng 6/202

Trang 2

LỜI NÓI ĐẦU

Trong cuộc sống hiện đại ngày nay chúng ta đang dần thấy các mô hình AI đang giúp đỡ con người rất nhiều trong cuộc sống, có thể kể đến như robot, trợ lý ảo, … Nhận thấy sự tiến bộ của khoa học và các kỹ thuật tiên tiến đang được áp dụng trong cuộc sống hiện nay, em có ấp ủ một ước mơ nghiên cứu khoa học và trong bài này em sẽ trình bày một phần nhỏ của ứng dụng AI Kỹ thuật này đã được các nhà khoa học trên thế giới ứng dụng vào mô hình AI để dễ dàng detect ra một đoạn từ một hình ảnh Trong quá trình làm dưới sự hướng dẫn của TS Nguyễn Quang Minh đã giúp em rất nhiều trong bài này em xin chân thành cảm ơn Thầy

Trang 3

M C L C Ụ Ụ

LỜI NÓI ĐẦU 2

CHƯƠNG I 3

I.I- SETUP 3

I.I.I – TẢI TÀI NGUYÊN 3

I.I.II – SETUP MÔI TRƯỜNG 3

I.I.III – THUẬT TOÁN 9

CHƯƠNG II 10

I- GIẢI THÍCH CODE 10

I.I – IMPORT THƯ VIỆN 10

I.II– CLASS TEST 10

I.III – MAIN 11

CHƯƠNG III 13

I- KẾT LUẬN 13

II- HƯỚNG PHÁT TRIỂN 13

CHƯƠNG I I.I- SETUP I.I.I – TẢI TÀI NGUYÊN 1- T i ECLIPSE IDE và JDK ả Trước hết ta cần tải 1 edittor để code và cái em lựa chọn là ECLIPSE IDE, nó đang được sử dụng rất rộng rãi bởi các lập trình viên java nói riêng và ngôn ngữ lập trình nói chung Bởi ứng dụng mà nó mang lại rất lớn cho người lập trình Chúng ta đi đến: Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects

Và tải về bản ECLIPSE IDE thích hợp cho máy của mình, và chưa hết để có thể lập trình java được trên máy tính của mình thì chúng ta cần tải môi trường JDK ở trang: Java Downloads | Oracle

2- T i th vi n x lý nh OPENCV ả ư ệ ử ả

Chúng ta cần tải thư viện OPENCV để có thể xử lý các kỹ thuật liên quan đến xử

lý ảnh ở trang: Releases - OpenCV

Trang 4

I.I.II – SETUP MÔI TRƯỜNG

1- Thêm OPENCV vào ECLIPSE IDE

Đầu tiên chúng ta mở ECLIPSE IDE trong lab windown>preferences

Tiếp theo chọn Java > Build Path > User Libraries

Chọn New và điền tên thư viện (tên bất kỳ) chọn ok, trỏ vào thư viện vừa tạo chọn Add External JARs và chọn đến OpenCV vừa tải về (file.jar)

Trang 5

Tiếp theo chúng ta chọn Native library location và chọn Edit và trỏ đến (

vd :C:\opencv\build\java\x64)

Cuối cùng apply và chúng ta đã xong bước đẻ thểm OPENCV vào ECLIPSE IDE

2-Thêm OPENCV vào Project

Đầu tiên chúng ta tạo project java trên ECLIPSE IDE và tạo 1 class

Trang 6

Chuột phải vào project > build path > Add libraries…

Chọn User lib >next

Trang 7

Và cuối cùng chọn thư viện OPENCV mình vừa thêm vào ECLIPSE IDE.

3-Setup các thành phầần liên quan đêến project

Đầu tiên chúng ta phải tải Tesseract-OCR ở: Releases · nguyenq/tess4j (github.com) tùy chọn phiên bản phù hợp rồi tải về giải nén

Tiếp theo chung ta import thư viện Tesseract ở đây, em dùng maven

Chuột phải vào project chọn Configure> Convert to Maven Project

Tiếp theo tìm kiếm đoạn code và chèn vào trong file pom.xml

Tìm kiếm từ khóa “maven tess4j” ví dụ ở bản Tess4j bản 4.4.0 ở trang: Maven Repository: net.sourceforge.tess4j » tess4j » 4.4.0 (mvnrepository.com)

Copy đoạn code

<dependency>

<groupId>net.sourceforge.tess4j</groupId>

Trang 8

<artifactId>tess4j</artifactId> <version>4.4.0</version>

</dependency>

Dán vào file pom.xml và lưu lại

Trang 9

I.I.III – THUẬT TOÁN

1-Mô hình h thôếng ệ

2-Pseudo-code

Trang 10

CHƯƠNG II

I- GIẢI THÍCH CODE

I.I – IMPORT THƯ VIỆN

/*

* import thư viện OPENCV

*/

import static org.opencv.imgproc.Imgproc.cvtColor;

import static org.opencv.imgproc.Imgproc.COLOR_BGR2GRAY;

import static org.opencv.imgcodecs.Imgcodecs.imread;

import static org.opencv.imgcodecs.Imgcodecs.imwrite;

import org.opencv.core.Core;

import org.opencv.core.Mat;

/*

* import thư viện file

*/

import java.io.File;

import java.io.FileWriter;

/*

* import thư viện Tesseract

*/

import net.sourceforge.tess4j.Tesseract;

import net.sourceforge.tess4j.TesseractException;

I.II– CLASS TEST

public class test {

static String SRC_PATH = "D:\\code\\" ; // Khai báo biến đường dẫn đến thư mục chứa ảnh input

static Tesseract tesseract = new Tesseract();

static {

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

/*

* đường dẫn đến thư mục chứa data để train cho mô hình

*/

tesseract.setDatapath( "C:\\Users\\Admin\\Downloads\\tessdata-4.1.0\\tessdata-4.1.0\\" );

}

String extractString(Mat inputMat ) {

String result = " " ;

Mat gray = new Mat();

/*

* chuyển đổi không gian màu R G B sang ảnh xám (ảnh gray scale) */

cvtColor(inputMat gray , ,COLOR_BGR2GRAY);

imwrite(SRC_PATH+ "gray.png" , gray ); // ghi ảnh gray.png vào thư mục chứa ảnh input

try { // thực thi trong try

/*

* quá trình detect văn bản và lưu vào biến result

* dùng thư viện tesseract và hàm doOCR

* Optical Character Recognition (OCR): nhận dạng ký tự quang học

Trang 11

}catch (TesseractException e ) { // lỗi thực thi trong catch

e printStackTrace();

}

returnresult ;

}

I.III – MAIN

public static void main(String[] args ) {

long start = System.currentTimeMillis();// khởi tạo biến start để lấy tgian hiện tại theo dạng mili giây

Mat origin = imread (SRC_PATH+ "TheSV.jpg" ); // khởi tạo biến để đọc ảnh input

String result = new test().extractString( origin ); //cho ảnh vào hàm train data để detect

/*

* sủ dụng FileWriter để ghi file

*/

try { // thực thi trong try

FileWriter fw = new FileWriter( "D:\\code\\ThongTinSV.txt" );

fw write( result );

fw close();

} catch (Exception ) { e //lỗi thì chạy vào trong catch

System.out.println( ); e

}

System.out.println( "time" ); // in ra cửa sổ Console chuỗi " time "

System.out.println(System.currentTimeMillis()- start ); //in ra màn hình tổng thời gian thực hiện mô hình

System.out.println( "done" ); // in ra cửa sổ Console chuối "done"

System.out.println( "Success " ); //in ra cửa sổ Console chuối "Success"

}

}

Trang 12

I.IV – KẾT QUẢ

Thời gian thực hiện chương trình mất 2.8 giây khá là nhanh

ảnh Sinh Viên (input) output

Output File.txt

Trang 13

CHƯƠNG III

I- KẾT LUẬN

Sau khi hoàn thành bài thi giữa kì em đã học được rất nhiều kiến thức liên quan đến lập trình java, xử lý ảnh…tuy kết quả chưa được như kỳ vọng nhưng phần nào cũng đáp ứng được yêu cầu của bài toán Em cảm ơn Thầy đã giúp đỡ em rất nhiều trong quá trình thực hiện bài Giữa Kỳ em xin chân thành cảm ơn

II- HƯỚNG PHÁT TRIỂN

Mặc dù kết quả chưa được như mong muốn, nhưng cũng phần nào giúp em hiểu được vấn đề, trong tương lai em sẽ xây dựng thêm để cho project thực tế hơn và ứng dụng được vào đời sống hằng ngày

Ngày đăng: 24/07/2024, 16:18

w