مصفوفة الكاميرا

في مجال رؤية الحاسوب، تُعرف مصفوفة الكاميرا أو مصفوفة إسقاط الكاميرا بأنها3×4{\displaystyle 3\times 4}مصفوفة تصف عملية تحويل كاميرا ذات ثقب صغير من نقاط ثلاثية الأبعاد في العالم إلى نقاط ثنائية الأبعاد في الصورة.

يتركx{\displaystyle \mathbf {x} }ليكن تمثيلاً لنقطة ثلاثية الأبعاد في إحداثيات متجانسة (متجه رباعي الأبعاد)، وليكنy{\displaystyle \mathbf {y} }ليكن تمثيلاً لصورة هذه النقطة في كاميرا الثقب (متجه ثلاثي الأبعاد). عندئذٍ تتحقق العلاقة التالية

yجx{\displaystyle \mathbf {y} \sim \mathbf {C} \,\mathbf {x} }

أينج{\displaystyle \mathbf {C} }هي مصفوفة الكاميرا و{\displaystyle \,\sim }تشير الإشارة إلى أن الجانبين الأيسر والأيمن متساويان باستثناء عملية الضرب في عدد قياسي غير صفريك0{\displaystyle k\neq 0}:

y=كجx.{\displaystyle \mathbf {y} =k\,\mathbf {C} \,\mathbf {x} .}

منذ مصفوفة الكاميرا ج{\displaystyle \mathbf {C} } بما أن هذه المصفوفة تشارك في عملية الربط بين عناصر فضاءين إسقاطيين ، فيمكن اعتبارها أيضاً عنصراً إسقاطياً. وهذا يعني أن لها 11 درجة حرية فقط، لأن أي ضرب في عدد قياسي غير صفري ينتج عنه مصفوفة كاميرا مكافئة.

الاشتقاق

وفقًا لنموذج الكاميرا ذات الثقب ، يتم تحديد العلاقة بين إحداثيات نقطة ثلاثية الأبعاد P وإحداثيات الصورة ثنائية الأبعاد لإسقاط تلك النقطة على مستوى الصورة، وذلك من خلال

(y1y2)=وx3(x1x2){\displaystyle {\begin{pmatrix}y_{1}\\y_{2}\end{pmatrix}}={\frac {f}{x_{3}}}{\begin{pmatrix}x_{1}\\x_{2}\end{pmatrix}}}

أين(x1،x2،x3){\displaystyle (x_{1},x_{2},x_{3})}تمثل هذه الإحداثيات ثلاثية الأبعاد للنقطة P بالنسبة لنظام إحداثيات مركزي للكاميرا،(y1،y2){\displaystyle (y_{1},y_{2})}تمثل إحداثيات الصورة الناتجة، و f هو البعد البؤري للكاميرا الذي نفترض أن f > 0. علاوة على ذلك، نفترض أيضًا أن x 3 > 0 .

لاستنتاج مصفوفة الكاميرا، يُعاد كتابة التعبير أعلاه بدلالة الإحداثيات المتجانسة. بدلاً من المتجه ثنائي الأبعاد(y1،y2){\displaystyle (y_{1},y_{2})}نحن نعتبر العنصر الإسقاطي (متجه ثلاثي الأبعاد)y=(y1،y2،1){\displaystyle \mathbf {y} =(y_{1},y_{2},1)}وبدلاً من المساواة، نعتبر المساواة حتى مع مراعاة عامل غير صفري، يُشار إليه بـ{\displaystyle \,\sim }أولاً، نكتب إحداثيات الصورة المتجانسة كتعبيرات في الإحداثيات ثلاثية الأبعاد المعتادة.

(y1y21)=(وx3x1وx3x21)(x1x2x3و){\displaystyle {\begin{pmatrix}y_{1}\\y_{2}\\1\end{pmatrix}}={\begin{pmatrix}{\frac {f}{x_{3}}}x_{1}\\{\frac {f}{x_{3}}}x_{2}\\1\end{pmatrix}}\sim {\begin{pmatrix}x_{1}\\x_{2}\\{\frac {x_{3}}{f}}\end{pmatrix}}}

وأخيرًا، يتم التعبير عن الإحداثيات ثلاثية الأبعاد أيضًا في تمثيل متجانسx{\displaystyle \mathbf {x} }وهكذا تظهر مصفوفة الكاميرا:

(y1y21)(10000100001و0)(x1x2x31){\displaystyle {\begin{pmatrix}y_{1}\\y_{2}\\1\end{pmatrix}}\sim {\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&{\frac {1}{f}}&0\end{pmatrix}}\,{\begin{pmatrix}x_{1}\\x_{2}\\x_{3}\\1\end{pmatrix}}} أو yجx{\displaystyle \mathbf {y} \sim \mathbf {C} \,\mathbf {x} }

أينج{\displaystyle \mathbf {C} }هي مصفوفة الكاميرا، والتي تُعطى هنا بواسطة

ج=(10000100001و0){\displaystyle \mathbf {C} ={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&{\frac {1}{f}}&0\end{pmatrix}}}،

وتصبح مصفوفة الكاميرا المقابلة الآن

ج=(10000100001و0)(و0000و000010){\displaystyle \mathbf {C} ={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&{\frac {1}{f}}&0\end{pmatrix}}\sim {\begin{pmatrix}f&0&0&0\\0&f&0&0\\0&0&1&0\end{pmatrix}}}

الخطوة الأخيرة هي نتيجة لـج{\displaystyle \mathbf {C} }كونه عنصرًا إسقاطيًا بحد ذاته.

قد تبدو مصفوفة الكاميرا المُستنتجة هنا بسيطةً من حيث احتوائها على عدد قليل جدًا من العناصر غير الصفرية. ويعتمد هذا إلى حد كبير على أنظمة الإحداثيات المُختارة للنقاط ثلاثية الأبعاد وثنائية الأبعاد. مع ذلك، تُستخدم في الواقع أشكال أخرى من مصفوفات الكاميرا، كما سيتبين لاحقًا.

موضع الكاميرا

مصفوفة الكاميراج{\displaystyle \mathbf {C} }الفضاء المشتق في القسم السابق له فضاء صفري يمتد بواسطة المتجه

ن=(0001){\displaystyle \mathbf {n} ={\begin{pmatrix}0\\0\\0\\1\end{pmatrix}}}

هذا أيضًا هو التمثيل المتجانس للنقطة ثلاثية الأبعاد التي إحداثياتها (0,0,0)، أي أن "مركز الكاميرا" (المعروف أيضًا باسم بؤبؤ الدخول ؛ موضع ثقب الكاميرا ذي الثقب ) يقع عند النقطة O. وهذا يعني أن مركز الكاميرا (وهذه النقطة فقط) لا يمكن إسقاطه على نقطة في مستوى الصورة بواسطة الكاميرا (أو بعبارة أخرى، يتم إسقاطه على جميع النقاط في الصورة لأن كل شعاع على الصورة يمر عبر هذه النقطة).

لأي نقطة ثلاثية الأبعاد أخرى معx3=0{\displaystyle x_{3}=0}والنتيجةyجx{\displaystyle \mathbf {y} \sim \mathbf {C} \,\mathbf {x} }محدد جيدًا وله الشكلy=(y1y20){\displaystyle \mathbf {y} =(y_{1}\,y_{2}\,0)^{\top }}وهذا يتوافق مع نقطة عند اللانهاية في مستوى الصورة الإسقاطية (على الرغم من أنه إذا تم اعتبار مستوى الصورة مستوى إقليدي ، فلا توجد نقطة تقاطع مقابلة).

مصفوفة الكاميرا المعيارية وإحداثيات الصورة المعيارية

يمكن تبسيط مصفوفة الكاميرا المشتقة أعلاه بشكل أكبر إذا افترضنا أن f = 1 :

ج0=(100001000010)=(أنا0){\displaystyle \mathbf {C} _{0}={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&1&0\end{pmatrix}}=\left({\begin{array}{c|c}\mathbf {I} &\mathbf {0} \end{array}}\right)}

أينأنا{\displaystyle \mathbf {I} }يشير هنا إلى أ3×3{\displaystyle 3\times 3}مصفوفة الوحدة . لاحظ أن3×4{\displaystyle 3\times 4}مصفوفةج{\displaystyle \mathbf {C} }هنا مقسمة إلى سلسلة من3×3{\displaystyle 3\times 3}مصفوفة ومتجه ثلاثي الأبعاد. مصفوفة الكاميراج0{\displaystyle \mathbf {C} _{0}}يُشار إليه أحيانًا باسم الشكل المتعارف عليه .

حتى الآن، تم تمثيل جميع النقاط في العالم ثلاثي الأبعاد بنظام إحداثيات مركزي للكاميرا ، أي نظام إحداثيات يقع مركزه عند مركز الكاميرا (موقع ثقب الكاميرا ). عمليًا، يمكن تمثيل النقاط ثلاثية الأبعاد بإحداثيات نسبية إلى نظام إحداثيات اختياري (X1'، X2'، X3'). بافتراض أن محاور إحداثيات الكاميرا (X1، X2، X3) والمحاور (X1'، X2'، X3') من النوع الإقليدي (متعامدة ومتساوية الخواص)، يوجد تحويل إقليدي ثلاثي الأبعاد فريد (دوران وانتقال) بين نظامي الإحداثيات. بعبارة أخرى، لا تكون الكاميرا بالضرورة عند نقطة الأصل عند النظر على طول المحور z .

يمكن تمثيل عمليتي الدوران والانتقال للإحداثيات ثلاثية الأبعاد على النحو التالي:4×4{\displaystyle 4\times 4}المصفوفات

(R001){\displaystyle \left({\begin{array}{c|c}\mathbf {R} &\mathbf {0} \\\hline \mathbf {0} &1\end{array}}\right)}و(أنات01){\displaystyle \left({\begin{array}{c|c}\mathbf {I} &\mathbf {t} \\\hline \mathbf {0} &1\end{array}}\right)}

أينR{\displaystyle \mathbf {R} }هو3×3{\displaystyle 3\times 3}مصفوفة الدوران وت{\displaystyle \mathbf {t} }هو متجه إزاحة ثلاثي الأبعاد. عند ضرب المصفوفة الأولى في التمثيل المتجانس لنقطة ثلاثية الأبعاد، تكون النتيجة هي التمثيل المتجانس للنقطة بعد تدويرها، بينما تقوم المصفوفة الثانية بعملية إزاحة. يؤدي تنفيذ العمليتين بالتتابع، أي التدوير أولًا ثم الإزاحة (مع تحديد متجه الإزاحة في نظام الإحداثيات المُدوَّر مسبقًا)، إلى الحصول على مصفوفة مُدمجة للتدوير والإزاحة.

(Rت01){\displaystyle \left({\begin{array}{c|c}\mathbf {R} &\mathbf {t} \\\hline \mathbf {0} &1\end{array}}\right)}

بافتراض أنR{\displaystyle \mathbf {R} }وت{\displaystyle \mathbf {t} }إن الدوران والانتقال هما تحديداً ما يربط بين نظامي الإحداثيات (X1، X2، X3) و(X1'، X2'، X3') المذكورين أعلاه، وهذا يعني أن

x=(Rت01)x{\displaystyle \mathbf {x} =\left({\begin{array}{c|c}\mathbf {R} &\mathbf {t} \\\hline \mathbf {0} &1\end{array}}\right)\mathbf {x} '}

أينx{\displaystyle \mathbf {x} '}هو التمثيل المتجانس للنقطة P في نظام الإحداثيات (X1',X2',X3').

بافتراض أن مصفوفة الكاميرا معطاة بواسطةج0{\displaystyle \mathbf {C} _{0}}، يصبح التحويل من الإحداثيات في نظام (X1، X2، X3) إلى إحداثيات الصورة المتجانسة

yج0x=(أنا0)(Rت01)x=(Rت)x{\displaystyle \mathbf {y} \sim \mathbf {C} _{0}\,\mathbf {x} =\left({\begin{array}{c|c}\mathbf {I} &\mathbf {0} \end{array}}\right)\,\left({\begin{array}{c|c}\mathbf {R} &\mathbf {t} \\\hline \mathbf {0} &1\end{array}}\right)\mathbf {x} '=\left({\begin{array}{c|c}\mathbf {R} &\mathbf {t} \end{array}}\right)\,\mathbf {x} '}

وبالتالي، فإن مصفوفة الكاميرا التي تربط النقاط في نظام الإحداثيات (X1'، X2'، X3') بإحداثيات الصورة هي

جشمال=(Rت){\displaystyle \mathbf {C} _{N}=\left({\begin{array}{c|c}\mathbf {R} &\mathbf {t} \end{array}}\right)}

سلسلة من مصفوفة دوران ثلاثية الأبعاد ومتجه إزاحة ثلاثي الأبعاد.

يُشار إلى هذا النوع من مصفوفات الكاميرا باسم مصفوفة الكاميرا المعيارية ، حيث تفترض أن البعد البؤري يساوي 1 وأن ​​إحداثيات الصورة تُقاس في نظام إحداثيات تقع نقطة أصله عند تقاطع المحور X3 مع مستوى الصورة، وله نفس وحدات نظام الإحداثيات ثلاثي الأبعاد. وتُسمى إحداثيات الصورة الناتجة بإحداثيات الصورة المعيارية .

موضع الكاميرا

مرة أخرى، الفضاء الصفري لمصفوفة الكاميرا المعيارية،جشمال{\displaystyle \mathbf {C} _{N}}الموصوف أعلاه، يمتد بواسطة المتجه رباعي الأبعاد

ن=(-R-1ت1)=(ن~1){\displaystyle \mathbf {n} ={\begin{pmatrix}-\mathbf {R} ^{-1}\,\mathbf {t} \\1\end{pmatrix}}={\begin{pmatrix}{\tilde {\mathbf {n} }}\\1\end{pmatrix}}}

وهذه أيضًا، مرة أخرى، إحداثيات مركز الكاميرا، الآن بالنسبة لنظام (X1'، X2'، X3'). ويمكن ملاحظة ذلك بتطبيق الدوران أولًا ثم الإزاحة على المتجه ثلاثي الأبعاد.ن~{\displaystyle {\tilde {\mathbf {n} }}}والنتيجة هي التمثيل المتجانس للإحداثيات ثلاثية الأبعاد (0,0,0).

وهذا يعني أن مركز الكاميرا (في تمثيله المتجانس) يقع في الفضاء الصفري لمصفوفة الكاميرا، بشرط أن يتم تمثيله من حيث الإحداثيات ثلاثية الأبعاد بالنسبة إلى نفس نظام الإحداثيات الذي تشير إليه مصفوفة الكاميرا.

مصفوفة الكاميرا المعياريةجشمال{\displaystyle \mathbf {C} _{N}}يمكن الآن كتابتها على النحو التالي

جشمال=R(أناR-1ت)=R(أنا-ن~){\displaystyle \mathbf {C} _{N}=\mathbf {R} \,\left({\begin{array}{c|c}\mathbf {I} &\mathbf {R} ^{-1}\,\mathbf {t} \end{array}}\right)=\mathbf {R} \,\left({\begin{array}{c|c}\mathbf {I} &-{\tilde {\mathbf {n} }}\end{array}}\right)}

أينن~{\displaystyle {\tilde {\mathbf {n} }}}هي الإحداثيات ثلاثية الأبعاد للكاميرا بالنسبة لنظام (X1',X2',X3').

مصفوفة الكاميرا العامة

بالنظر إلى عملية الإسقاط الناتجة عن مصفوفة الكاميرا المعيارية، يمكن تحويل إحداثيات الصورة المعيارية الناتجة باستخدام أي تحويل تجانسي ثنائي الأبعاد . يشمل ذلك عمليات الإزاحة والدوران ثنائية الأبعاد، بالإضافة إلى تغيير الحجم (متساوي الخواص وغير متساوي الخواص)، وكذلك تحويلات المنظور ثنائية الأبعاد العامة . يمكن تمثيل هذا التحويل على النحو التالي:3×3{\displaystyle 3\times 3}مصفوفةح{\displaystyle \mathbf {H} }والتي تحدد إحداثيات الصورة المتجانسة المعياريةy{\displaystyle \mathbf {y} }إلى إحداثيات الصورة المحولة المتجانسةy{\displaystyle \mathbf {y} '}:

y=حy{\displaystyle \mathbf {y} '=\mathbf {H} \,\mathbf {y} }

بإدخال التعبير أعلاه لإحداثيات الصورة المعيارية بدلالة الإحداثيات ثلاثية الأبعاد، نحصل على

y=حجشمالx{\displaystyle \mathbf {y} '=\mathbf {H} \,\mathbf {C} _{N}\,\mathbf {x} '}

ينتج عن ذلك الشكل الأكثر عمومية لمصفوفة الكاميرا

ج=حجشمال=ح(Rت){\displaystyle \mathbf {C} =\mathbf {H} \,\mathbf {C} _{N}=\mathbf {H} \,\left({\begin{array}{c|c}\mathbf {R} &\mathbf {t} \end{array}}\right)}

انظر أيضاً

مراجع

  • ريتشارد هارتلي وأندرو زيسرمان (2003). هندسة الرؤية المتعددة في رؤية الحاسوب . مطبعة جامعة كامبريدج. ISBN 0-521-54051-8.