1 / 19

OCR implementation on FPGA

OCR implementation on FPGA. מבוצע ע"י: אריאל וולף ואלעד ביכמן מנחה: יורי דולגין. רקע. תוכנות OCR או בשמן המלא Optical Character Recognition הן תוכנות שמסוגלות לזהות תמונות אופטיות של תווים ולהפכן לתווים בפורמט טקסט.

Download Presentation

OCR implementation on FPGA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OCR implementation on FPGA מבוצע ע"י: אריאל וולף ואלעד ביכמן מנחה: יורי דולגין

  2. רקע • תוכנות OCR או בשמן המלא Optical Character Recognition הן תוכנות שמסוגלות לזהות תמונות אופטיות של תווים ולהפכן לתווים בפורמט טקסט. • שימושיות מאוד במגוון תחומים : החל מסורקים ביתיים וכלה ברובוטיקה, ראייה ממחושבת ועיבוד תמונה.

  3. כללי • בפרויקט זה נבנה מערכת חומרה ספרתית המסוגלת לזהות אותיות בעברית, כלומר בהינתן תמונה בינארית של אות מהאלף-בית העברי, המערכת תדע לסווגה לאחת מ-22 האפשרויות. • המערכת תהיה בנויה מכרטיס PCI המכיל רכיב חומרה מתכנת (FPGA ) שעליו ייצרב התכנון. • המערכת תבצע סווג בלבד (ללא אימון). • בנוסף תסופק תוכנית Matlab שתבצע אימון לרשת על מחשב PC.

  4. ממשק המערכת • כניסות: • תמונה בינארית בגודל 16 x 9 (144 פיקסלים). • הפיקסלים יכולים להיכנס למערכת במקביל, בחלקים או כזרם (stream) של ביטים וזאת כתלות במספר ה- I/O הפנויים. • יציאות: ווקטור באורך 5 שייתן חיווי על האות שבתמונה, או על אי הצלחה.

  5. הגדרות המערכת • קצבים : יקבעו לאחר מימוש בלוק בסיסי של נוירון בודד. • שיטת מימוש: רשת נוירונים (פרספטרון רב שכבתי) בעלת משקלים שכווננו מראש כך שהרשת תדע לסווג תמונות המכילות את אותיות הא"ב העברי.

  6. רכיב נוירון בודד – תיאוריה • נוירון בודד מסוג פרספטרון הוא רכיב חישובי המממש את הקשר הבא בין כניסותיו ליציאתו: φ (WTX+w0) • W ווקטור המשקלים (באורך n כלשהו). • X ווקטור כניסה בינארי. • w0הוא משקל ההיסט. • φ היא פונקציות ההפעלה - פונקציה לא ליניארית, מונוטונית עולה ובעלת טווח חסום (נקראת גם סיגמואיד).

  7. רכיב נוירון בודד - תרשים

  8. רשת נוירונים • כלי בסיסי בתחום הלמידה הממוחשבת. • צירוף של רכיבי נוירון בודדים אשר צירופם יוצר מיפוי לא ליניארי בין הכניסות ליציאות. • מקרב אוניברסלי לפונקציות לא ליניאריות. • יכולת לימוד אינדוקטיבית על סמך דוגמאות מייצגות. • שיטות הלימוד הנפוצות מתבססות על קירובי גרדיאנט (Gradient Descent). • סיווג דוגמאות חדשות מתבצע לפי הפרמטרים שנקבעו בשלב האימון.

  9. דוגמא לרשת נוירונים

  10. שלב אימון הרשת • יתבצע בעזרת תוכנת Matlab ( NN Toolbox ). • אלגוריתם לעדכון משקלים: Back-Propagation או גרסאות משופרות שלו (traingdx). • ביצוע אימון וסימולציה על מספר רשתות נוירונים בארכיטקטורות שונות (גודל שכבת הביניים, אורכי משקלים). • אימון הרשת שתיבחר והתכנסותה לערכי משקלים סופיים. • יתכן שימוש בעיבוד מקדים (preprocessing).

  11. שלב סיווג הדוגמאות • ערכי משקלים שנקבעו בשלב האימון ע"י תוכנת matlab ייכתבו ל-RAM הנמצא על הרכיב בשלב האתחול. • קיים סט משקלים נפרד לכל אות (22 סטים שונים). • תתוכנן רשת של נוירונים בסיסיים שתהיה מסוגלת לבצע סווג של תמונת אות וזאת כתלות בערכי המשקלים של כל נוירון עבור אותה אות. • יתוכנן בקר מערכת מתאים (FSM) שיתזמן את המערכת בהתאם לארכיטקטורה שתיקבע בהמשך.

  12. דיאגרמת בלוקים ראשונית

  13. מימוש רכיב נוירון בודד • ווקטור המשקלים - W אורכו ייקבע לאחר סימולציות • פונקצית ההפעלה: אפשרויות מימוש: • חומרה מיוחדת • Look Up Table שתמומש ע"י גישות ל-RAM אופי המימוש ייקבע כתלות במספר השערים הפנויים ברכיב (לוגיקה +RAM) ויתבצע לאחר סיום מימוש נוירון בודד והגדרת מבנה הרשת.

  14. סכמה למימוש נוירון בודד

  15. דרישות חומרה • כרטיס PCI(32 Bit/33 MHz) של חברת NALLATECH המכיל 2 רכיבי חומרה מתכנתים (FPGA) של חברת Xilinx . • רכיבי חומרה מתכנתים: Spartan-II XC2S150 • תדר פעולה מקסימאלי:200 MHZ • רכיב אחד כבר מתוכנת עם PCI-core ובקר לוח. • רכיב שני פנוי לאפליקציות משתמש.

  16. שלבי התכנון • תכנון ספרתי (כתיבת קוד HDL ) של בלוק בסיסי המממש נוירון בודד. • כתיבת קוד Matlab מתאים המבצע לימוד וסימולציה לנוירון בודד וכן לרשת נוירונים מלאה. • קבלת החלטה סופית לגבי אופי המימוש : • מבנה הרשת (גודל שכבת הביניים). • אורכי המשקלים. • פונקציות LUT. • תכנון רשת נוירונים מלאה תוך התחשבות באילוצי שטח ו-Timing.

  17. שלבי תכנון (המשך) • תכן בקר מערכת מתאים ( FSM ). • תכן זיכרון ופונקציות LUT. • תכן בלוקים נוספים במידה ויידרשו ( עיבוד מקדים על התמונה). • סימולציית HDLמלאה והשוואה לסימולציה Matlab. • סינתזה לרמת שערים (Gate Level). • סימולציית Gate Level. • Place + Route + צריבת הרכיב.

  18. לוחות זמנים

  19. סוף

More Related