ข้ามไปที่เนื้อหาหลัก

RANdom SAmple Consensus (RANSAC) algorithm

Introduction

fig. 1 picture from 'Multiview geometry in Computer Vision' book.

If you use orthogonal regression ( minimizes the sum of squared perpendicular distances -- LMS ), there will be a problem if you have an outliers (see fig 1a).

RANSAC algorithm

RANSAC algorithm will cope with this problem by discarding outliers.

Slide from 25th year of RANSAC, Philip Torr slides has very clear picture of the algorithm.






support = number of points that lie within a distance threshold

points within the threshold distance of a line with most support are the inliers.

If a point is an outliers, a line will not have so much support. ( see fig 1b from mvg book above )

Explain the algorithm

- First we randomly pick two red point and estimate m, c for y=mx+c ( this is easy, right )

- for consider if a point is a inlier
for every yellow point (x, y)
If | y - (m*x + c) | < t, number of inlier need to justify model

-- re-estimate m, c again by using all the inlier

sample code ?

a simple python example code for RANSAC is available here.
or more complicate code here. all is the same code as a psudocode from wiki.

or you can use my porting octave code here ( NOTE if you are using matlab, this code should be modified )

# Run RANSAC to see if we can recover the line (y=x) from the data.
function [model_params, model_error, model_inliers] = ransac(data,n,k,t,d)
  % k -- the number of iterations.
  % t -- the threshold for deciding when a data point fits a model (i.e. is an inlier).
  % d -- the number of inliers needed to justify the model.

# k=100,d=20
  model_params = [0.0, 0.0] # slope and intercept
  model_error = 1e6
  model_inliers = []

  for i=1:k # k iterations
      fprintf(1, "new iteraion\n\n")
      inliers = choice(data, n)
   
      # Fit a line (or generally any model) using lstsq.
      a = [inliers(:,1), ones(1, n)']
      b = inliers(:,2)

      # linear least square -- rewrite y = mx+c in y = A*p form
      # A = [x 1]      
      # p = [m, c]
      p = a \ b
    
      compatible = []
      for j=1:size(data, 1)
          fprintf(1, '--')
          pt = data(j,:)
          if abs(pt(2) - dot(p, [pt(1), 1.0])) < t # | y - (m*x + c) | < t
              compatible = [compatible; pt]
          end  
      end  

      if size(compatible, 1) > d
          # The current model is good enough so we should recompute it using all compatible points.
          a = [compatible(:,1), ones(1, size(compatible, 1))']
          b = compatible(:,2)
          p = a \ b
       
          # if residuals < model_error
              model_params = p
              # model_error = residuals
              model_inliers = compatible
          # end
      end
  end

function result=choice(seq, n)
  indx = 1:size(seq)-1
  shuffle(indx)
  result = seq(indx(1:n), :)


adaptively find k (the number of iterations)
k = log(1-p)/log(1-(1-ε)^n)

proof ( ref : wiki ) :

p
= prob(RANSAC algorithm in some iteration selects only inliers )

w = prob( choosing an inlier each time a single point is selected ) = number of inliers / number of all points

A common case is that w is not well known beforehand, but some rough value can be given.

n = Sample Size

wn = prob( n points are inliers )
1 − wn = prob( at least one of the n points is an outlier ) [ bad model will be estimated from this point set ]
( 1 − wk = prob( algorithm never selects a set of n points which all are inliers )
( 1 − wn )k = 1 − p
take log and we will get
k = log(1-p)/log(1-w^n)

It should be noted that this result assumes that the n data points are selected independently, that is, a point which has been selected once is replaced and can be selected again in the same iteration.

Apply to Homography
When adapt this to Homography, estimating line is not a visual line. The error is computing from transfer error d.

This RANSAC for Homography steps are adapt from Alexei (Alyosha) Efros's slide.

RANSAC loop:
1. Select 4 feature pairs (at random)
[ n in the code, or s in the book is fixed to 4 ]
2. Compute homography H (exact)
3. If d(x’, H x) largest set of inliers
[ so the number of inliers needed to justify the model ( d in the code or capital T in the book ) is not used here. ]
5. Re-compute least-squares H estimate on all of the inliers

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ส่งไปรษณีย์ทีละมากๆ ที่ช่องไปรษณีย์สำหรับธุรกิจ

  ถ้าเราส่งไปรษณีย์ทีละ 10 กล่องขึ้นไป สามารถไปส่งโดยใช้ช่องทางธุรกิจได้ โดยต้องกรอกใบรับฝากรวม ( Receipt for bulk Posting ) เป็นลิสต์รายการให้เขาไปด้วย โดยกรอกพัสดุแต่ละรายการ และ ไปยื่นให้เขาพร้อมกับพัสดุที่จะส่ง วิธีกรอก คือ ให้กรอกพัสดุแบบเดียวกันไว้แผ่นเดียวกัน  เช่น พัสดุ10 กล่อง กล่องขนาดเท่ากัน น้ำหนักเท่ากันหมด กรอกไว้ 1 แผ่น ถ้าน้ำหนักต่างกัน ขนาดกล่องต่างกัน กรอกแยกแผ่นไว้ดีที่สุด ซึ่งใบนี้สามารถไปขอได้ที่ไปรษณีย์ฝ่ายธุรกิจ สามารถนำมาทำใส่ A4 ก็ได้ ขอบคุณคุณพี่ amarin.ch ที่ไปรษณีย์กลาง ( BANGKOK G.P.O. ) มากๆ นะครับ สำหรับคำแนะนำ ขอบคุณที่ช่วยคีย์ให้ทีละรายการสำหรับมือใหม่ที่ยังไม่รู้ว่ามีใบรับฝากรวมอย่างผมด้วยครับ คราวหน้าผมจะทำใบรับฝากรวมไปครับ

อยู่เหงาๆ เราไปเที่ยว - ไหว้พระขอพร ศาลเจ้าแม่ทับทิม (อาม่า), เจริญกรุง, กรุงเทพ; 天后聖母廟, 石龙軍路, 曼谷, 泰国; Thap Thim Chinese Goddess Shrine, Chareon Krung 63 Road, Bangkok, Thailand

天后聖母廟, 石龙軍路, 曼谷, 泰国 ไหว้ศาลเจ้าแม่ทับทิม ขอให้การค้าเจริญรุ่งเรือง ตำนานเจ้าแม่ทับทิมเกิดที่ตำบลตุ้ยบ๊วย เขตบ่นเซียว เกาะไหหลำ มีผู้เฒ่าแซ่พัว เป็นผู้มีความซื่อสัตย์สุจริต ทำงานขยันขันแข็ง ครั้งหนึ่งแกออกไปหาปลา โดยผูกแหเป็นช้อนดักปลา เวลาผ่านไปแกยังหาปลาไม่ได้ คืนนั้นก็ประสบความล้มเหลว เมื่อช้อนแหขึ้นมาทีไรก้อมีแต่ท่อนไม้ ด้วยความโมโหแกเลยขว้างท่อนไม้นั้นออกไปให้ไกล แต่แล้วเมื่อช้อนแหขึ้นมาใหม่ก็ปรากฏท่อนไม้ท่อนเดิมอีก ต่อจากนั้นแกก็ขว้างท่อนไม้ขึ้นฝั่ง และแกก็ฉุก คิดว่าแปลกที่ท่อนไม้ธรรมดาจะสามารถลอยทวนน้ำได้ คงจะเป็นสิ่งวิเศษ และแกก็ได้นำท่อนไม้นั้นขึ้นฝั่ง และเพ่งมองท่อนไม้นั้นพร้อมกับอธิษฐานว่า หากท่อนไม้นี้มีความศักดิ์สิทธิ์ขอให้คืนนี้จับปลาได้มาก เมื่อพ้นจากความจนแล้ว เมื่อขึ้นฝั่งจะนำท่อนไม้นี้แกะสลักเป็นเทวรูปศักดิ์สิทธิและสักการะบูชาเช้าวันไม่ให้ขาด เมื่ออธิษฐานจบแกเอาท่อนไม้นั้นวางบนหัวเรือ ปรากฏว่าช้อนเพียงสองถึงสามครั้งก็ได้ปลาตัวโตเต็มเรือ จึงนำปลาขึ้นฝั่งวันนั้นปลาของแกขายได้ราคา เพราะชาวประมงคนอื่นจับได้น้อยแกจึงมีเงินจับจ่ายใช้สอย และทุกครั้งที่แกออกหาปลา ...

เทคนิคคิดเลขเร็วโดยใช้ วิธีคิด แบบ เวทคณิต ( Vedic Mathematics example )

จากที่สงสัยเรื่อง ลูกคิด ของ จินตคณิต ที่ลองไปค้นดู ปรากฎว่า เจอ เวทคณิต ซึ่งเขาบอกว่า อยู่ในคัมภีร์พระเวท ลองอ่านดูแล้ว รู้สึกว่าฝึกสมอง ก็ทำให้คิดเลขเร็วดี เลยสรุปมาให้ ตามนี้ Tutorial 1 การลบเลข ALL FROM 9 AND THE LAST FROM 10 ทุกตัวลบจาก 9 และตัวสุดท้ายลบจาก 10 เช่น 1000 - 357 = 643 10,000 - 1,049 = 8951 ถ้า 1,000 - 83 ให้มองว่ามี 0 อยู่ข้างหน้า เป็น 1,000 - 083 = 917 ฝึกบ่อยๆ ก็คล่อง แล้วก็ไม่ต้องใช้เครื่องคิดเลขด้วย ลองทำดูสิ 1) 1000 - 777 = 2) 1000 - 283 = 3) 1000 - 505 = 4) 10,000 - 2345 = 5) 10,000 - 9876 = 6) 10,000 - 1011 = 7) 100 - 57 = 8) 1000 - 57 = 9) 10,000 - 321 = 10) 10,000 - 38 = 3,000 - 467 ก็ทำเหมือนกัน โดยลบตัวแรกสุดของ 3,000 ไป 1 จากนั้นก็ทำเหมือนเดิม จะได้ว่า 3,000 - 467 = 2,533 Tutorial 2 VERTICALLY AND CROSSWISE สำหรับตัวเลขที่น้อยกว่าฐานนิดหน่อย ลอง 88x98 88 น้อยกว่า 100 อยู่ 12 98 น้อยกว่า 100 อยู่ 2 12x2 = 24 88-2 หรือ 98-12 ได้ 86 ดังนั้นตอบ 8,624 ดูอีกตัวอย่าง หรือ ลองทำนี่ดู 1) 87 x 98 = 2) 88 x ...

เบื่อๆ ไปเที่ยวสิ รวมที่เที่ยวที่อยากไป เวลาเปิด แล้ว แผนที่

ที่เที่ยว ใน กรุงเทพ ที่น่าไป พิพิธภัณฑ์สยาม ที่อยู่ : กระทรวงพาณิชย์เดิม ใกล้วันโพธิ์ ตรงข้ามโรงเรียนวัดราชบพิตร เวลาทำการ : จันทร์ ปิด อังคาร - พฤหัสบดี 09.30 - 18.00 ศุกร์ 09.30 - 21.00 เสาร์ - อาพิตย์ 09.30 - 19.00 Official Web : คลิก ไปมาแล้ว ตามนี้ หอศิลปวัฒนธรรมแห่งกรุงเทพมหานคร (BMA Contemporary Art Museum) หรือ หอศิลป์กรุงเทพฯ เวลาทำการ : จันทร์ ปิด วันอื่นๆ 10.00 - 21.00 น. Official web : คลิก ไปมาแล้ว ตามนี้ สวนสัตว์ดุสิต หรือ เขาดิน วันก่อนโน้นผ่าน เห็นว่าทำใหม่แล้ว ประตูเข้าอลังการมาก เลยอยากเข้าไปดู เวลาทำการ 08.00-18.00 น. ทุกวัน Official web : คลิก ไปมาแล้ว ตามนี้ วัดสระเกศ ภูเขาทอง เปิดให้เข้าชมตั้งแต่เวลา 07.30 – 17.30 น. น่าจะมีงานวัดช่วงลอยกระทง ( ต้นๆ พ.ย. ) ด้วยนะ น่าไปๆ แผนที่ จ้ะ ไปมาแล้ว ตามนี้ ( แต่ไม่ได้ไปตอนมีงาน ) ตำหนัก โชคชัย 4 และ พระมหาเจดีย์พระพุทธเจ้าหมื่นพระองค์ ที่อยู่ : 4/37 ซอยสุขสันต์ 7 ถนนลาดพร้าว 53 (โชคชัย 4) อ.ลาดพร้าว โทร. 66 2 5140715 , 66 2 5389368 แผนที่ จ้ะ ไปม...

20 th century boys movie ( 20世紀少年, Nijisseiki Shōnen )

โอ ว้าววว มีภาคโ รงหนังด้วย เห็นเขาว่า ทำเป็น 3 ภาค ภาคแรก ฉาย 30 สิงหาคม 2008 นี้แล้ว ถ่ายใน 7 ประเทศ ซึ่งแน่นอนว่า ต้องมีประเทศไทยด้วยแน่นอน theme song “20th Century Boy” ร้องโดย วงร๊อกอังกฤษ T.Rex ดูหน้าคนเล่นกันดีกว่า casting เอ็นโด เคนจิ แสดงโดย Toshiaki Karasawa โอตโจะ แสดงโดย Etsushi Toyokawa ยูคิจิ แสดงโดย Takako Tokiwa โยชิสึเนะ แสดงโดย Teruyuki Kagawa มารุโอะ แสดงโดย Hidehiko Ishizuka เคโรยอน แสดงโดย Hiroyuki Miyasako ดองกี้ แสดงโดย Katsuhisa Namase ยามาเนะ แสดงโดย Fumiyo Kohinata ฟุคุเบ แสดงโดย Kuranosuke Sasaki มันโจเมะ อินชู แสดงโดย Renji Ishibashi พระเจ้า เอ็นโด คิริโกะ แสดงโดย Hitomi Kuroki มาซาโอะ ทามุระ แสดงโดย ARATA มอนจัง แสดงโดย Takashi Ukaji แม่ของเคนจิ นักแสดงอื่นๆอีก ตัวละคร 300 กว่าตัว Match หน้ากับชื่อ ไม่ถูกกันเลยทีเดียว Nana Katase - Mika Shikishima Chizuru Ikewaki - part-time worker Erika Mirai Moriyama - mangaka Kameda Yu Tokui - convenience store employee Miyako Takeuchi - Setsuko Ichihara Yoriko Doguchi - Mitsuko Kido Kenichi Endo - bloody man Ke...

อยู่เหงาๆ เราไปเที่ยว - วัดอรุณราชวราราม ( วัดแจ้ง ) + วัดสระเกศ ( ภูเขาทอง )

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่  ลิงก์นี้  นะครับ คำเตือน เอ็นทรีนี้รูปเยอะมากกกก ควรปิดบิตก่อนดู ผ่างๆๆ ท่านสามารถรับชมเอนทรีนี้ผ่าน url http://tinyurl.com/goldenMount ได้ด้วย วันนี้ตั้งใจไปวัดอรุณฯ เดินทางทางน้ำเหมือนเดิม แต่คราวนี้นั่งเรือ ธงสีฟ้า ( คราวก่อน นั่งเรือ ธงสีส้ม ) พอถึงท่าสาทร เขาบอกว่า ให้ลงลำที่จอดอยู่ได้เลย เก็บตังในเรือ ก็ งงๆ เดินลงไป เหมือนเดิมครับ ชูชีพอยู่ใต้ที่นั่งของท่าน พอเรือออกสักพัก มีไกด์ มาบรรยาย อ้าว กรำ ขึ้นผิดเรือรึเปล่า นี่มันเรือท่องเที่ยว 150 บาท ไม่ใช่เร๊อะ กะลังอึ้งๆอยู่ แต่พอไกด์พูดไปสักพัก ก็เลยรู้ว่า 150 บาท มันราคาเหมาวัน แล้วก็ได้ความรู้ของท่าเรือ แล้วก็สองข้างทาง เรือธงฟ้านี่มันไปสุดที่ท่าพระอาทิตย์เท่านั้นเองนะ แล้วก็กลับ ตอนไปมีสาวคนนึง ถามว่า จะไปวัดสระเกศ ไปทางไหน ถ้าฟังไม่ผิด คนเก็บตังบนเรือ บอกว่า ท่ามหาราช จากนั้นก็คุยอะไรกันไม่รู้ ไม่ได้ยินแล้วล่ะ เรือธงฟ้า มันใหญ่กว่า น่าหวาดเสียวน้อยกว่า น้ำกระเด็นน้อยกว่า แพงกว่า...

[ AI ] IBM granite, NVIDIA robotics, IBM Langflow, watsonx, LMCache, LiteRT, Self driving car, Mamba model, RAG

 IBM granite: Time series from sensor, stock market * Forcast * Anomaly detection - classification high medium risk, data synthesis Embedding AI - 1M params - edge device - small AI Send insight --- NVIDIA * Jackson Thor robotic * Nemo ---- * IBM Langflow : open source * Watsonx (n8n) Enterprise : guardrails / log, tool using policy ----- LMcache : open source KC cache Prompt -> key value (RAGs) Same context ( e.g. same docs) Reduce operating costs CacheGen : make cache cheap to move and store CacheBlend : reuse chunk, not just prefix ---- Google มี framework ที่ optimize AI บน mobile phone นั่นคือ LiteRT : google pytorch Quantisation เท่าไหร่บน device นี้ Model explorer: quantize แล้ว error < 5% XMNpack ใช้ CPU ลดลง Google AI edge portal : benchmark AI on real device ---- Self driving car * Nvidia Alpamayo 2 model * Carla simulation Random forest -> multiple scenarios -> json -> LLM Car talk to mobile phone (cross the road) ----- Mamba model (recursive)  - alte...

อยู่เหงาๆ เราไปเที่ยว - Museum Siam มิวเซียม สยาม

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่  ลิงก์นี้  นะครับ เมื่อวานนี้เอง คิดครึ้มอกครึ้มใจ เปิดเวป Museum Siam ขึ้นมาดู เพราะว่า เกิดอยากไปถ่ายรูปขึ้นมา หลังจากที่เคยไป ครั้งแรก ตอนที่พิพิธภัณฑ์เพิ่งเปิดใหม่ๆ ตอนหลังๆ ยุ่งๆ เลยไม่ได้แวะไป คราวนี้ไปได้อย่างเชี่ยวชาญมาก เพราะว่า แถวนั้นไปบ่อยขึ้น ทั้ง วัดพระแก้ว วัดโพธิ์ และ มธ. ท่าพระจันทร์ ที่เราเองได้แวะเวียนไปบ่อยขึ้นมากๆ เข้าเรื่องดีกว่า พอเปิดเวปของ Museum Siam ปุ๊ป ก็เจอ เทศกาลงาน รักสร้างสรรค์ สยาม ซึ่งจัดขึ้นในวันที่ 17-18 กันยายน 2554 นี้เอง มีศิลปินไปมากมายน้ะจ้ะ จากเทศกาลนี้เอง เขาเลยให้ พิพิธภัณฑ์สยาม เข้าฟรี ในสองวันดังกล่าว ซึ่งเราเอง รู้สึกว่าโชคดีเด้งสอง จาก เด้งแรก ตอนไป เมืองโบราณ ที่เขาได้อัญเชิญ พระบรมสารีริกธาตุ มาประดิษฐานให้คนกราบไหว้บูชา พิพิธภัณฑ์สยาม ปรับปรุงตึก อาคารสำนักงานปลัดกระทรวงพาณิชย์เดิม ที่สร้างมาตั้งแต่สมัย รัชกาลที่ 6 โน่น มีพื้นที่ประมาณ 7 ไร่ อยู่ตรงท่าเตียน ข้างวัดโพธิ์ ถนนสนามชัย ซึ่งเราเอง ก็เข้าไปเดินเล่น ในส่วนของ งาน นิ...

อยู่เหงาๆ เราไปเที่ยว - มูลนิธิเผยแผ่คุณธรรมเพื่อการสงเคราะห์ "เต็กก่า จีจินเกาะ" (Chee Chin Khor Moral Uplifting Societies)

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่  ลิงก์นี้  นะครับ คำเตือน ! เอนทรีนี้ รูปเยอะมากกกก ควรปิดบิตก่อนดู alternative URL : http://tinyurl.com/cheeChinKhor เสาร์ก่อนไปเที่ยวมา ผ่างงงง . . . ดูรอบๆก่อนละกัน สุดๆ หยั่งกับไปเมืองจีน จริงๆ เจดีย์นี้ เห็นตอนแล่นเรือตรง แม่น้ำเจ้าพระยา ได้สักพักหนึ่งแล้วนะ บังเอิญเจอในเวป เลยแวะไปสักหน่อย สุดยอด ใกล้บ้านด้วยๆ อันนี้ต้นอะไรไม่รู้ แปลกดีๆ ต้นไม้นี้ เขาทำเป็นหน้า ไว้ที่กิ่งมันด้วย ดูใกล้ๆ มีความหมายว่าไงไม่รู้แหะ ริมน้ำๆ โว้วววว ศาลาริมน้ำ ไปดูในเจดีย์กันดีกว่าๆ พระมหาธาตุเจดีย์พระจอมธาตรีไทยจีนเฉลิม สมเด็จพระมหาสังฆราช สกลมหาสังฆปรินายก ถวายให้ ในหลวง ตอนเฉลิมพระชนมพรรษา 6 รอบ พระยิ้ม บันได ก็เป็นบันไดวนๆ ขึ้นไป ใต้บันไดเป็นภาพวาด แล้วก็มีบทกวี แต่ละชั้น ภาพวาดก็ไม่เหมือนกัน นี่ชั้นอื่นๆ เราไปวันเสาร์ ไม่ค่อยมีคนเท่าไหร่ เห็นเขาบอกว่า ปิด สี่โมง แล...

อยู่เหงาๆ เราไปเที่ยว - หอศิลป์ กรุงเทพฯ BACC ( BANGKOK ART AND CULTURE CENTRE ) : Soft Power

เอนทรีนี้เป็นส่วนหนึ่งของ serie ท่องเที่ยว ดูบทความท่องเที่ยว อื่นๆ ของผม ได้ที่  ลิงก์นี้  นะครับ BACC หอศิลป์กรุงเทพฯ เป็นอะไรที่ไปบ่อยม๊ากกก เนื่องจากเราไปสยามบ่อยนั่นเอง BACC ( BANGKOK ART AND CULTURE CENTRE ) is the place where I usually go, since it is near Siam Square . งานแสดงเขาก็เวียนไปเรื่อยๆ ไปกี่ทีก็ไม่เบื่อ There are exhibitions all the year. อย่างอันนี้เป็นงานแสดง ที่ชื่อ Soft Power น้ะจ้ะ This is one of the exhibition there, called "Soft Power". ถ่ายไว้นานแล้วแหล่ะ I took these photos long time ago. พอจะ rewrite  บล็อกโพสนี้  เห็นว่า หอศิลป์ มันชี้ไปที่ นี่  ซึ่งมีแต่ text น้ะจ้ะ ไม่งามหูงามตา เลยเอาอันนี้มาลงไว้ดีกว่า When I rewrite  this blog post , I noticed that the Art center in the article is linking to  this post , which contains only characters. It is not so beautiful, so I design to write this article. นี่เป็นอีกหนึ่งงานที่ ไปแล้วประทับใจนะครับ พอเดินเข้าไป เหมือนกับ...