Môi trường phát triển phần mềm nhúng cho các thiết bị di động

112 18 0
Môi trường phát triển phần mềm nhúng cho các thiết bị di động

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM VĂN HƯỞNG MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM NHÚNG CHO CÁC THIẾT BỊ DI ĐỘNG Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Ngọc Bình Hà Nội-2008 MỤC LỤC BẢNG KÝ HIỆU BẢNG CÁC HÌNH VẼ MỞ ĐẦU ………………………………………………………….7 Chương Tổng quan hệ thống nhúng 1.1 Các khái niệm 1.1.1 Hệ thống nhúng 1.1.3 Phần mềm nhúng 1.1.3 Hệ thống nhúng thời gian thực 10 1.2 Đặc điểm khác biệt phần mềm nhúng phần mềm thơng thường máy tính cá nhân 12 1.3 Ứng dụng hệ nhúng 13 Chương Hệ điều hành thời gian thực 14 2.1 Khái niệm 14 2.2 Kiến trúc nhân RTOS 15 2.3 Các vấn đề RTOS 16 2.3.1 Hệ thống tiền cảnh/hậu cảnh 16 2.3.2 Miền găng 17 2.3.3 Tài nguyên 17 2.3.4 Tính đa nhiệm 17 2.3.5 Tác vụ trạng thái tác vụ 17 2.3.6 Chuyển ngữ cảnh 18 2.3.7 Nhân thời gian thực 19 2.3.8 Bộ lập lịch 21 2.4 Phát triển ứng dụng thời gian thực RTOS 22 2.4.1 Mô hình tích hợp 22 2.4.2 Phát triển ứng dụng nhúng thời gian thực C/OS 22 Chương Môi trường phát triển phần mềm nhúng cho thiết bị di động ……………………………………………………… 24 3.1 Hệ điều hành thiết bị di động 24 3.2 Môi trường lập trình Symbian 26 3.2.1 Hệ điều hành Symbian 26 3.2.2 Thực thi ứng dụng Symbian 28 3.2.2.1 Phân loại ứng dụng 28 3.2.2.2 Cấu trúc ứng dụng 29 3.2.2.3 Thực thi ứng dụng Symbian 29 3.2.3 Xây dựng ứng dụng Symbian với C/C++ 32 3.2.3.1 Symbian Flatform 32 3.2.3.2 Các SDK IDE phổ biến 32 3.2.3.3 Các bước xây dựng ứng dụng Series 60 với Carbide C/C++ 33 3.3 Môi trường NET Compact Framework Windows Mobile 37 3.3.1 Hệ điều hành Windows Mobile 37 3.3.2 .NET Compact Framework 37 Luận văn Thạc sĩ Môi trường phát triển phần mềm nhúng cho thiết bị di động 3.3.2.1 Kiến trúc tổng quan NET Compact Framework 37 3.3.2.2 Môi trường lập trình NET Compact Framework 40 3.3.2.3 Các bước xây dựng ứng dụng NET Compact Framework với Visual Studio.net 42 3.4 J2ME 45 3.4.1 Kiến trúc J2ME 45 3.4.1.1 Máy ảo Java (KVM) 47 3.4.1.2 Tầng CLDC (Connected Limited Device Configuration): 48 3.4.1.3 MIDP (Mobile Information Device Profile) 50 3.4.2 Phát triển ứng dụng nhúng thiết bị di động với J2ME 50 3.4.2.1 MIDlet 50 3.4.2.2 Tệp tin JAR 51 3.4.3 Xây dựng ứng dụng chạy mô 52 Chương Xây dựng ứng dụng nhận dạng chữ NÔM Pocket PC ……………………………………………………… 56 4.1 Bài toán nhận dạng chữ NÔM 56 4.2 Giải pháp công nghệ 56 4.3 Phân tích thiết kế hệ thống 59 4.3.1 Biểu đồ Use Case 59 4.3.1.1 Biểu đồ ca sử dụng cho gói Desktop 59 4.3.1.2 Biểu đồ ca sử dụng cho gói Mobile 60 4.3.2 Biểu đồ lớp phân tích 61 4.3.2.1 Phân tích ca sử dụng gói Desktop 61 4.3.2.2 Phân tích ca sử dụng gói Mobile 62 4.3.3 Biểu đồ lớp thiết kế 63 4.3.3.1 Biểu đồ lớp thiết kế cho gói Desktop 63 4.3.3.2 Biểu đồ lớp thiết kế cho gói Mobile 64 4.3.4 Biểu đồ 65 4.3.4.1 Biểu đồ tuần gói Desktop 65 4.3.4.2 Biểu đồ gói Mobile 66 4.4 Cài đặt 69 4.4.1 Cài đặt gói huấn luyện Desktop 69 4.4.2 Cài đặt gói nhận dạng Mobile 71 4.5 Kết thực nghiệm 74 KẾT LUẬN 78 TÀI LIỆU THAM KHẢO 79 PHỤ LỤC A Windows Embedded CE 6.0 81 A.1 Các hệ điều hành họ Windows CE 81 A.2 Windows Embedded CE 6.0 83 A.2.1 Tính Windows Embedded CE 6.0 83 A.2.2 Kiến trúc Windows Embedded CE 6.0 83 A.2.3 Lập trình ứng dụng Windows Embedded CE 6.0 85 PHỤ LỤC B Mã nguồn lớp gói Mobile 87 B.1 Lớp giao diện gói Mobile: frmMainApp 87 B.2 Lớp lưu kết đầu vào xử lý: MobileInputResult 90 Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ Môi trường phát triển phần mềm nhúng cho thiết bị di động B.3 Lớp xử lý đầu vào: MobileInputProcess 91 B.4 Lớp cấu hình mạng: NetworkConfig 95 B.5 Lớp lưu kết nhận dạng: RecognitionProcessResult 97 B.6 Lớp nhận dạng: RecognitionProcess 98 B.7 Lớp lưu ngữ nghĩa kết tra cứu nghĩa từ: SemanticMap 102 B.8 Lớp tra cứu nghĩa từ: LookupSemantic 104 PHỤ LỤC C Mã nguồn phương thức gói Desktop 106 Khoa Cơng Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ Môi trường phát triển phần mềm nhúng cho thiết bị di động BẢNG KÝ HIỆU Ký hiệu Thuật ngữ Ý nghĩa Mục tham chiếu ANN Artifical Neural Network Application User Interface class Center Processor Unit Dynamic link library Data Object Model Mạng nơ-ron nhân tạo 4.2 AppUI CPU DLL DOM GUI IDE ISR ISS J2ME JVM KVM MIDLet RAM ROM RTOS SDK SOAP Lớp giao diện người dùng ứng dụng Bộ xử lý trung tâm Thư viện liên kết động Mơ hình đối tượng liệu Graphic User Interface Giao diện người dùng đồ hoạ Intergrated Mơi trường phát triển Development tích hợp Environment Interrupt Service Chương trình phục Routine vụ ngắt Intergrated System Phần mềm hệ thống tích Software hợp Java to Micro Edition Nền tảng Java cho thiết bị di động Java Virtual Machine Máy ảo Java K Virtual Machine Máy ảo Java cho thiết bị di động Mobile Information Ứng dụng Java aplet Device applet thiết bị di động Random Access Bộ nhớ truy cập ngẫu Memory nhiên Read Only Memory Bộ nhớ đọc Real time operating Hệ điều hành thời gian system thực Software Development Gói cơng cụ phát triển Kit phần mềm Simple Object Access Giao thức truy cập đối Protocol tượng Model Ngơn ngữ mơ hình hố UML Uniform Language XML Extensible Markup Language Khoa Cơng Nghệ Thông Tin Học viên: Phạm Văn Hưởng Ngôn ngữ đánh dấu mở rộng 3.2.2.2 2.3.7 3.2.2.3 3.3.2.2 3.3.3.2 2.4.1 2.2 3.2.3.1 3.4.1 3.4.1 3.4.1 3.4.2.1 2.3.7 2.3.7 1.1 3.2.3.2 3.3.2.2 4.2 3.3.2.2 Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ Môi trường phát triển phần mềm nhúng cho thiết bị di động BẢNG CÁC HÌNH VẼ Số thứ tự Hình 1.1 Hình 2.1 Hình 2.2 Hình 2.3 Hình 2.4 Mơ tả hệ nhúng thời gian thực Khung nhìn tổng quan vể RTOS Kiến trúc nhân RTOS Hệ thống tiền cảnh/hậu cảnh Trạng thái tác vụ Hình 2.5 Hình 2.6 Hình 2.7 2.3.5 2.3.5 2.4.1 Hình 2.8 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 Hình 3.1 Hình 3.2 Hình 3.3 Hình 3.4 Hình 3.5 Hình 3.6 Hình 3.7 Hình 3.8 Hình 3.9 Hình 3.10 Hình 3.11 Hình 3.12 Hình 3.13 Hình 3.14 Hình 3.15 Hình 3.16 Hình 3.17 Hình 3.18 29 Hình 3.19 Minh hoạ nhân khơng ưu tiên Minh hoạ nhân ưu tiên Mơ hình phát triển ứng dụng nhúng RTOS Cấu trúc chương trình nhúng sử dụng µC/OS Tổng quan vai trò hệ điều hành Kiến trúc Symbian Cơng nghệ tích hợp Series 60 Mở dự dán Symbian Hoàn tất tạo dự án Xây dựng mã nguồn ứng dụng Giao diện Symbian Series 60 Giao diện ứng dụng console Symbian Kiến trúc NET Compact Framework Tạo project cho thiết bị di động Thiết kế giao diện ứng dụng Biên dịch ứng dụng Chạy mô ứng dụng Kiến trúc J2ME Tiến trình xây dựng ứng dụng Ứng dụng java thiết bị di động Cấu trúc vòng đời MIDlet Tạo mở dự án J2ME Wireless Toolkit Cấu hình dự án 30 31 32 Hình 3.20 Hình 3.21 Hình 4.1 3.4.3 3.4.3 4.2 33 34 35 36 Hình 4.2 Hình 4.3 Hình 4.4 Hình 4.5 37 Hình 4.6 Biên dịch dự án Chạy mô MIDlet Cấ u trúc ma ̣ng Perceptron đa tầ ng cho toán nhận dạng chữ Nơm Các gói chương trình Biểu đồ ca sử dụng gói Desktop Biểu đồ ca sử dụng gói Mobile Biểu đồ lớp phân tích thực thi ca sử dụng InputProcess Biểu đồ lớp phân tích thực thi ca sử dụng Hình Khoa Cơng Nghệ Thơng Tin Học viên: Phạm Văn Hưởng Mô tả Mục tham chiếu 1.3.1 2.1 2.2 2.3.1 2.3.5 2.4.2 3.1 3.2.1 3.2.3.1 3.2.3.3 3.2.3.3 3.2.3.3 3.2.3.3 3.2.3.3 3.3.2.1 3.3.2.3 3.3.2.3 3.3.2.3 3.3.2.3 3.4.1 3.4.1.1 4.4.1.2 3.4.2.1 3.4.3 3.4.3 4.3.1 4.3.1.1 4.3.1.1 4.3.2.1 4.3.2.1 Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 38 Hình 4.7 39 Hình 4.8 40 Hình 4.9 41 42 43 Hình 4.10 Hình 4.11 Hình 4.12 44 Hình 4.13 45 Hình 4.14 46 Hình 4.15 47 48 49 50 51 Hình 4.16 Hình 4.17 Hình 4.18 Hình 4.19 Hình 4.20 52 53 54 Hình 4.21 Hình 4.22 Hình 4.23 55 56 57 Hình A.1 Hình A.2 Hình A.3 58 Hình A.4 59 Hình A.5 60 Hình A.6 61 62 Hình A.7 Hình A.8 Khoa Cơng Nghệ Thông Tin Học viên: Phạm Văn Hưởng Môi trường phát triển phần mềm nhúng cho thiết bị di động NetworkTrainning Biểu đồ lớp phân tích thực thi ca sử dụng MobileInputProcess Biểu đồ lớp phân tích thực thi ca sử dụng Recognition Biểu đồ lớp phân tích thực thi ca sử dụng LookupSemantic Biểu đồ lớp thiết kế gói Desktop Biểu đồ lớp thiết kế cho gói Mobile Biểu đồ thực phương thức TrainingNetwork() Biểu đồ thực phương thức Recognition() Biểu đồ thực phương thức CreateSetMatrixPixelOfCharacter() Biểu đồ thực phương thức LookupMeanning() Giao diện gói Desktop Giao diện cấu trúc lớp gói Mobile Giao diện huấn luyện mạng Desktop Form ứng dụng PocketPC Giao diện nạp file: trọng số ngữ nghĩa Giao diện nạp ảnh nhận dạng Kết nhận dạng Pocket PC Thống kê kết thử nghiệm nhận dạng chữ Nôm Desktop Lịch sử Windows CE Lịch sử Windows Mobile Tính số phiên Windows Mobile Quan hệ Windows CE Windows Mobile Mơ hình nhớ ảo Windows Embedded CE 6.0 Không gian địa logic không gian địa vật lý Kiến trúc Windows Embedded CE 6.0 Mơ hình lời gọi hệ thống Windows Embedded CE 6.0 4.3.2.2 4.3.2.2 4.3.2.2 4.3.3.1 4.3.3.2 4.3.4.1 4.3.4.2 4.3.4.2 4.3.4.2 4.4.1 4.4.2 4.5 4.5 4.5 4.5 4.5 4.5 Phụ lục A Phụ lục A Phụ lục A Phụ lục A Phụ lục A Phụ lục A Phụ lục A Phụ lục A Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ Môi trường phát triển phần mềm nhúng cho thiết bị di động MỞ ĐẦU Trong phát triển công nghệ thông tin, sau giai đoạn bùng nổ internet từ 1980-2000 [2], cơng nghệ nhúng xem xu công nghệ thông tin Hệ thống nhúng phần cốt lõi tạo lên sản phẩm nhúng môi trường thông minh Thị trường hệ thống nhúng lớn gấp khoảng 100 lần thị trường PC mạng LAN, PC Internet bề cơng nghệ thơng tin cịn phần chìm cơng nghệ thơng tin chiếm 99% số vi xử lý toàn cầu nằm hệ nhúng cịn biết đến [2] Các sản phẩm nhúng có mặt lĩnh vực đời sống kinh tế xã hội từ giải trí đến thiết bị gia dụng, thiết bị công nghiệp Sự hội tụ công nghệ truyền thông không dây với thiết bị tính tốn cầm tay, sức đẩy cơng nghệ vi điện tử, công nghệ vi điện, công nghệ sinh học hội tụ tạo nên chip công nghệ nano, tảng cho thay đổi công nghệ thông tin truyền thông Sức kéo thị trường đòi hỏi thiết bị phải có nhiều chức thân thiện với người dùng, có mức độ thông minh ngày cải thiện đưa đến vai trò tầm quan trọng hệ thống nhúng ngày cao kinh tế quốc dân Từ tất yếu khách quan, công nghệ phần mềm nhúng trở thành lĩnh vực công nghệ then chốt cho phát triển kinh tế nhiều quốc gia giới tiêu biểu Mỹ, Nhật Bản, Hàn Quốc, Phần Lan Trung quốc Tại Mỹ có nhiều chương trình hỗ trợ Nhà nước để phát triển hệ thống phần mềm nhúng Hàn Quốc có dự án lớn nhằm phát triển công nghệ phần mềm nhúng thiết bị gia dụng nối mạng Internet, hệ thống phần mềm nhúng cho phát triển thành phố thông minh, dự án phát triển ngành công nghiệp phần mềm nhúng, trung tâm hỗ trợ ngành công nghiệp hậu PC Phần Lan có sách quốc gia tích cực cho nghiên cứu phát triển hệ nhúng đặc biệt phần mềm nhúng Những quốc gia thành lập nhiều viện nghiên cứu trung tâm phát triển hệ nhúng [2] Ở Việt Nam, hầu hết công ty phần mềm tập trung xây dựng phần mềm ứng dụng mà phần nhiều ứng dụng quản lý ứng dụng web Một số cơng ty phát triển phần mềm hệ thống phát triển hệ nhúng chủ yếu làm theo yêu cầu đối tác nước Nghĩa đa khai thác bề công nghệ thơng tin dần bão hồ Do vậy, phủ, ngành công nghiệp, viện nghiên cứu, trường đại học Việt Nam có chiến lược phát triển cơng nghệ thơng tin truyền thơng có điều chỉnh phù hợp để theo kịp, rút ngắn khoảng cách tụt hậu lĩnh vực công nghệ thông tin truyền thông nước khu vực giới trình hội Khoa Cơng Nghệ Thơng Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ Môi trường phát triển phần mềm nhúng cho thiết bị di động nhập kinh tế tồn cầu Cần đưa sách thính đáng để nghiên cứu, xây dựng hệ thống nhúng mà ban đầu cần tập trung vào phát triển phần mềm nhúng [1] Từ xu phát triển khách quan công nghệ thông tin trạng công nghệ nước ta việc nghiên cứu, phát triển hệ nhúng tất yếu Phạm vi nghiên cứu tầm ứng dụng hệ nhúng lớn, giới hạn luận văn, chúng tơi tập trung trình bày vấn đề môi trường phát triển phần mềm nhúng cho thiết bị di động (mobile) Cấu trúc luận văn gồm phần sau: Phần mở đầu: Nội dung phần mở đầu vai trò tầm quan trọng công nghệ nhúng, trạng phát triển công nghệ nhúng giới Việt Nam Chương Tổng quan hệ thống nhúng: Nội dung chương trình bày tổng quan hệ thống nhúng, khái niệm liên quan như: hệ thống nhúng, phần mềm nhúng, hệ thời gian thực, hệ nhúng thời gian thực; so sánh ứng dụng desktop ứng dụng nhúng Chương Hệ điều hành thời gian thực: Nội dung chương trình bày vấn đề phát triển phần mềm nhúng môi trường hệ điều hành thời gian thực Chương Môi trường phát triển ứng dụng nhúng cho thiết bị di động: Nội dung chương trình bày mơi trường phát triển ứng dụng nhúng thiết bị di động như: môi trường hệ điều hành Symbian, môi trường NET Compact Framework, môi trường java J2ME Chương Xây dựng ứng dụng nhận dạng chữ Nôm Pocket PC: Nội dung chương trình bày thực nghiệm xây dựng ứng dụng nhận dạng chữ Nôm Pocket PC Hệ thống sử dụng ngơn ngữ UML để phân tích thiết kế cài đặt ngôn ngữ C# tảng NET Compact Framework Đồng thời ứng dụng sử dụng kỹ thuật mạng nơ-ron Perceptron đa tầng để nhận dạng Phần kết luận: Nội dung phần tổng kết, đánh giá luận văn phần mềm thực nghiệm đưa số hướng phát triển Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ Môi trường phát triển phần mềm nhúng cho thiết bị di động Chương Tổng quan hệ thống nhúng 1.1 Các khái niệm 1.1.1 Hệ thống nhúng Hệ thống nhúng (Embedded system) hệ thống tính toán có khả tự trị nhúng vào môi trường hay hệ thống lớn Đó hệ thống tích hợp phần cứng phần phềm phục vụ toán chuyên dụng Một hệ thống nhúng chứa nhiều hệ thống nhúng khác [7] Hệ thống nhúng thường thiết kế để thực chức chuyên biệt Khác với máy tính đa chức năng, chẳng hạn máy tính cá nhân, hệ thống nhúng thực một vài chức định, thường kèm với yêu cầu cụ thể bao gồm số thiết bị máy móc phần cứng chuyên dụng Trong số trường hợp, hệ nhúng hoạt động hệ thống tồn độc lập Ví dụ định tuyến router Bộ định tuyến xây dựng sử dụng vi xử lý đặc biệt, nhớ, cổng giao tiếp mạng phần mềm cài đặt thuật tốn định hướng gói tin Theo đó, định tuyến làm nhiệm vụ định hướng gói tin đến từ cổng tới cổng khác, tồn độc lập [9] 1.1.3 Phần mềm nhúng Phần mềm nhúng phần mềm tích hợp hệ thống nhúng Mục đích phần mềm nhúng nhằm điều khiển phần cứng, cho phép đáp ứng tương tác người dùng cung cấp môi trường để phát triển phần mềm nhúng tích hợp khác Phần mềm nhúng tạo nên phần hồn, phần trí tuệ sản phẩm nhúng Phần mềm nhúng ngày có tỷ lệ giá trị cao giá trị sản phẩm nhúng Hiện phần lớn phần mềm nhúng nằm sản phẩm truyền thông sản phẩm điện tử tiêu dùng (consumer electronics), tiếp đến sản phẩm ô tô, phương tiện vận chuyển, máy móc thiết bị y tế, thiết bị lượng, thiết bị cảnh báo bảo vệ sản phẩm đo điều khiển Phần mềm nhúng có mức kiến trúc khác tuỳ theo yêu cầu cụ thể hệ thống Dưới số kiến trúc phần mềm nhúng với độ phức tạp tăng dần [7]: - Kiến trúc xoay vòng RR (Round-Robin) - Kiến trúc xoay vòng kết hợp với ngắt Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 97 Môi trường phát triển phần mềm nhúng cho thiết bị di động B.5 Lớp lưu kết nhận dạng: RecognitionProcessResult using System; using System.Collections.Generic; using System.Text; namespace MobileDevNOMRegconition1._0.AppClasses { /// /// Lop chua output cho qua trinh tinh toan tren mang: /// - So toi da ky tu /// - So ky tu hien tai /// - Mang ouput nhi phan /// class RecognitionProcessResult { /// /// So ky tu toi da /// public static int MaxOfOutputCharacters = 100; /// /// Mang cac vector bit cho moi ky tu: chi so ky tu, chi so bit ky tu /// public static int [,] arOutputSet = new int[MaxOfOutputCharacters, NetworkConfig.NumOfOutNodes]; } } Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 98 Môi trường phát triển phần mềm nhúng cho thiết bị di động B.6 Lớp nhận dạng: RecognitionProcess using System; using System.Collections.Generic; using System.Text; using System.IO; namespace MobileDevNOMRegconition1._0.AppClasses { /// /// Lop chua cac phuong thuc nhan dang theo mang noron: /// - Ham nap mang so: LoadNetwork() /// - Ham tinh output cho tap mau vao: CreateOutputForAllInput() /// - Ham tinh output cho mot mau vao: CreateOutputForAInput() /// class RecognitionProcess { #region Cac thuoc tinh dung chung cho cac ham lop /// /// Mang chua cac noron tang vao hien tai /// private float[] current_input = new float[NetworkConfig.NumOfInputNodes]; /// /// So nut tren moi tang Mang chieu: Chi so tang, So noron toi da /// private float[,] node_output = new float[NetworkConfig.NumOfLayer, NetworkConfig.NumOfHidenNodes]; #endregion #region Cac ham tinh toan tren mang /// /// Ham nap mang so, luu weight /// /// public void LoadNetwork( StreamReader objSR) { Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 99 Môi trường phát triển phần mềm nhúng cho thiết bị di động //Cau hinh khung mang NetworkConfig.CreateFormNetwork(); string line; char[] weight_char = new char[20]; string weight_text = ""; int title_length, weight_length; for (int i = 0; i < 9; i++) { objSR.ReadLine(); } for (int i = 1; i < NetworkConfig.NumOfLayer; i++) { for (int j = 0; j < NetworkConfig.layers[i]; j++) { for (int k = 0; k < NetworkConfig.layers[i - 1]; k++) { weight_text = ""; line = objSR.ReadLine(); title_length = ("Weight[" + i.ToString() + " , " + j.ToString() + " , " + k.ToString() + "] = ").Length; weight_length = line.Length - title_length; line.CopyTo(title_length, weight_char, 0, weight_length); for (int counter = 0; counter < weight_length; counter++) { weight_text = weight_text + weight_char[counter].ToString(); } NetworkConfig.weight[i, j, k] = (float)Convert.ToDouble(weight_text); } } } Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 100 Môi trường phát triển phần mềm nhúng cho thiết bị di động } /// /// Ham tinh output cho moi input /// public void CreateOutputForAllInput() { for (int i = 0; i < MobileInputResult.NumOfCharacters; i++) { //Lay vector bit vao tuong ung for (int j = 0; j < NetworkConfig.NumOfInputNodes; j++) { current_input[j] = MobileInputResult.input_set[j,i]; } //Goi ham tinh output cho moi input tuong ung CreateOutputForAInput(i); } } private void CreateOutputForAInput(int index) { //Gia tri tinh duoc float f_net; //So so tren tang int number_of_weights; for (int i = 0; i < NetworkConfig.NumOfLayer; i++) { for (int j = 0; j < NetworkConfig.layers[i]; j++) { f_net = 0.0F; if (i == 0) { Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 101 Môi trường phát triển phần mềm nhúng cho thiết bị di động number_of_weights = 1; } else { number_of_weights = NetworkConfig.layers[i - 1]; } for (int k = 0; k < number_of_weights; k++) { if (i == 0) { f_net = current_input[j]; } else { f_net = f_net + node_output[i - 1, k] * NetworkConfig.weight[i, j, k]; } } node_output[i, j] = sigmoid(f_net); } } //Danh gia bang ham nghuong va tao output for (int nodeIndex = 0; nodeIndex < NetworkConfig.NumOfOutNodes; nodeIndex++) { RecognitionProcessResult.arOutputSet[index, nodeIndex] = threshold(node_output[2,nodeIndex]); } } /// /// Ham chuyen tren mang /// /// /// public float sigmoid(float f_net) Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 102 Môi trường phát triển phần mềm nhúng cho thiết bị di động { float result = (float)((2 / (1 + Math.Exp(-1 * NetworkConfig.slope * f_net))) - 1); return result; } /// /// Ham nghuong /// /// /// public int threshold(float val) { if (val < 0.5) { return 0; } else { return 1; } } #endregion } } B.7 Lớp lưu ngữ nghĩa kết tra cứu nghĩa từ: SemanticMap using System; using System.Collections.Generic; using System.Text; namespace MobileDevNOMRegconition1._0.AppClasses { /// /// Lop chua anh xa ngu nghia /// class SemanticMap Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 103 Môi trường phát triển phần mềm nhúng cho thiết bị di động { /// /// So ky tu toi da /// public static int MaxOfCharacters = 65355; /// /// Mang gia tri khoa cua tap ket qua nhan danh /// public static int[] arKey = new int[MaxOfCharacters]; /// /// Mang chua nghia cua cac ky tu da duoc nhan dang /// public static String[] arResultMeanning = new String[MaxOfCharacters]; /// /// Mang chua toan bo nghia tu /// public static String[] arSemantic = new String[MaxOfCharacters]; } } Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 104 Môi trường phát triển phần mềm nhúng cho thiết bị di động B.8 Lớp tra cứu nghĩa từ: LookupSemantic using System; using System.Collections.Generic; using System.Text; using System.IO; namespace MobileDevNOMRegconition1._0.AppClasses { /// /// Lop chua cac ham anh xa nghu nghia: /// - Nap file ngu nghia: LoadDictionary() /// - Tao khoa cho ky tu hien tai: CreateKeyOfAChar() /// - Tao mang khoa cho tap ket qua nhan dang: CreateKeyArray() /// - Tra tu: LookupMeanning() /// class LookupSemantic { /// /// Tao mang nghu nghia /// /// public void LoadDictionary(StreamReader objRS) { //for (int i = 1; i pictureBox1.Width ) pictureBox1.SizeMode= PictureBoxSizeMode.StretchImage; else pictureBox1.SizeMode= PictureBoxSizeMode.Normal; right=1; image_start_pixel_x=0; image_start_pixel_y=0; identify_lines(); current_line=0; character_present=true; character_valid=true; output_string=""; Khoa Công Nghệ Thông Tin Học viên: Phạm Văn Hưởng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 107 Môi trường phát triển phần mềm nhúng cho thiết bị di động label5.Text = "Ảnh vào : [" + image_file_name + ".bmp]"; } } /// /// Xac dinh ky tu tiep theo /// public void detect_next_character() { number_of_input_sets=1; get_next_character(); if(character_present) { for (int i = 0; i < matrix_width; i++) for (int j = 0; j < matrix_height; j++) input_set[i * matrix_height + j, 0] = ann_input_value[i, j]; get_inputs(0); calculate_outputs(); comboBox3.Items.Clear (); comboBox3.BeginUpdate (); //TODO Test: Tao xau String strResult = ""; for(int i=0;i

Ngày đăng: 23/09/2020, 21:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan