การใช้งาน Pytorch ของเครือข่ายหม้อแปลงอวกาศ (STN) ด้วยแผ่นบางแผ่น (TPS)
STN เป็นสถาปัตยกรรมเครือข่ายประสาทที่ทรงพลังที่เสนอโดย DeepMind ใน [1] STN บรรลุความแปรปรวนเชิงพื้นที่ที่แท้จริงโดยแก้ไขภาพอินพุตโดยอัตโนมัติก่อนที่จะถูกป้อนเข้าสู่เครือข่ายการจำแนกประเภทปกติ ส่วนที่น่าตื่นตาตื่นใจที่สุดของ STN คือมันเป็นความแตกต่างแบบ end-to-end และสามารถเสียบเข้ากับสถาปัตยกรรมเครือข่ายที่มีอยู่โดยตรง (Alexnet, Resnet, ฯลฯ ) โดยไม่มีการกำกับดูแลเพิ่มเติม
Paper STN ดั้งเดิม [1] การทดลองในรูปแบบการเปลี่ยนแปลงเฉพาะสามรูปแบบ: การเปลี่ยนแปลงเลียนแบบ, การเปลี่ยนแปลงแบบฉายและ การเปลี่ยนแปลงแบบแผ่นบาง ๆ (TPS) ในหมู่พวกเขาฉันคิดว่า TPS เป็นคำแปลที่ทรงพลังที่สุดเพราะมันสามารถบิดเบือนภาพในวิธีที่กำหนดโดยพลการ ดังที่แสดงไว้ด้านล่างฉันสามารถบิดเบือนอวตารของฉันได้
เข้าไปข้างใน
TPS-STN ถูกใช้ในแอปพลิเคชัน OCR [2] ในบทความนี้ TPS-STN คือการแก้ไขภาพข้อความที่บิดเบี้ยวโดยอัตโนมัติก่อนที่จะป้อนเข้าสู่รูปแบบการจดจำข้อความ OCR ปกติ:
ฉันใช้ imageio เพื่อสร้างการสร้างภาพ GIF เพียงติดตั้งโดย pip install imageio
python mnist_train.py --model unbounded_stn --angle 90 --grid_size 4
python mnist_visualize.py --model unbounded_stn --angle 90 --grid_size 4
python mnist_make_gif.py --model unbounded_stn --angle 90 --grid_size 4
จากนั้น resutls png และ gif จะถูกบันทึกใน ./image/unbounded_stn_angle60_grid4/ unbounded_stn_angle60_grid4/ และ ./gif/unbounded_stn_angle60_grid4/ unbounded_stn_angle60_grid4/
คุณสามารถลองชุดค่าผสมของแบบจำลองอื่น ๆ มุมการหมุนแบบสุ่มของ MNIST และขนาดกริด TPS รายละเอียดด้านล่าง
มีอาร์กิวเมนต์ที่ควบคุมได้สามข้อ: --model , --angle , --grid_size
--model : str, จำเป็น
no_stn โมดูล STN จะถูกยกเลิกและมีตัวจําแนก CNN เพียงตัวเดียวเท่านั้นbounded_stn เอาต์พุตของเครือข่ายการแปลจะถูกบีบเป็น [-1, 1] โดย F.tanh เช่นเดียวกับที่ทำใน [2]unbounded_stn เอาต์พุตของเครือข่าย locolizaition จะไม่ถูกบีบ --angle : int, default = 60
[-angle, angle] --grid_size : int, default = 4
(grid_size x grid_size) เพื่อกำหนดการแปลงเส้นโค้งแผ่นบาง ๆ ผลลัพธ์ที่มี angle = 90 โดยทั่วไปไม่ดี:
ผลลัพธ์ที่มี bounded_stn ไม่ดีถ้า grid_size <= 3 :
แต่ตกลงถ้า grid_size >= 4 :
ผลลัพธ์ที่มี unbounded_stn ก็โอเค:
แน่นอนว่ามีกรณีที่ไม่ดีในแต่ละชุด คุณสามารถดาวน์โหลด GIF ทั้งหมดของฉันจาก Baidu NetDisk (ขนาดไฟล์ 2G)
[1] เครือข่ายหม้อแปลงอวกาศ
[2] การจดจำข้อความฉากที่แข็งแกร่งด้วย recti อัตโนมัติ
[3] 数值方法 —— 薄板样条插值( pline แผ่นบาง ๆ )