مدل مارها - مدل غیرقابل تغییر فعال
**مدل کانتور فعال**(به انگلیسی: Active contour model)، که مدل **مارها** (به انگلیسی: snakes) نیز نامیده می‌شود، یک چارچوب در بینایی رایانه ای است که توسط مایکل کاس، اندرو ویتکین و دمتری ترزوپولوس معرفی شده، و برای ترسیم خطوط خارجی یک شیء، از یک تصویر دو بعدی احتمالاً پر نویز تعریف شده‌است. مدل مارها در دیدگاه رایانه‌ای محبوب است و این مدل به‌طور گسترده در برنامه‌های کاربردی مانند ردیابی شی، تشخیص شکل، تقسیم‌بندی، آشکارسازی لبه و تطبیق استریو مورد استفاده قرار می‌گیرد.

مدل مار یک انرژی کمینه کننده و اسپلاین قابل اصلاح است که تحت تأثیر محدودیت‌ها و نیروهای تصویر است که آن را به سمت کانتورها و نیروهای داخلی متصل می‌کند که مقاومت در برابر تغییر شکل را دارند. مدل مارها ممکن است به عنوان یک مورد خاص از روش کلی تطبیق یک مدل ناپایدار به یک تصویر با استفاده از به حداقل رساندن انرژی درک شوند. در دو بعد، مدل شکل فعال، یک نسخه گسسته این رویکرد را نشان می‌دهد، با استفاده از مدل توزیع نقطه برای محدود کردن محدوده شکل به یک دامنه صریح از یک مجموعه آموزشی یاد می‌شود.

مارها کل مشکل پیدا کردن خطوط در تصاویر را حل نمی‌کنند، زیرا این روش نیاز به دانش قبلی شکل کانتورهای طرحی شده دارد. در عوض، آنها به مکانیزم‌های دیگر مانند تعامل با یک کاربر، تعامل با برخی از فرایندهای درک تصویری سطح بالاتر یا اطلاعاتی از داده‌های تصویر مجاور در زمان یا فضا بستگی دارد.

انگیزه و هدف
------------

در دیدگاه رایانه، مدلهای کانتور، مرزهای شکل در یک تصویر را توصیف می‌کنند. مدل مارها به‌طور خاص طراحی شده‌اند تا مشکلات را حل کنند که در آن شکل تقریبی مرز شناخته شده‌است. با داشتن یک مدل تغییر شکل‌پذیر، مارها می‌توانند به تفاوت و نویز در تطبیق استریو و ردیابی حرکت سازگار شوند. علاوه بر این، این روش می‌تواند خطوط غیرواقعی در تصویر را با نادیده گرفتن اطلاعات مرزی گم شده پیدا کند.

در مقایسه با تکنیک‌های استخراج ویژگی کلاسیک، مدل مارها مزایای متعددی دارند:

* آنها مستقل و سازگارانه برای حداقل حالت جستجو می‌کنند.
* نیروهای تصویری خارجی به شیوه ای بصری بر روی مار عمل می‌کنند.
* ترکیب کردن Gaussian smoothing در تابع انرژی تصویر، حساسیت مقیاسی را نشان می‌دهد.
* آنها می‌توانند برای ردیابی اجزای در حال حرکت مورد استفاده قرار گیرند.

اشکالات کلیدی روش سنتی مارهای عبارتند از:

* آنها به حالتهای مینیمم محلی حساس هستند، که با تکنیک‌های انجماد شبیه‌سازی شده می‌توانند خنثی شوند.
* ویژگی‌های جزئی اغلب در طول کاهش انرژی در سراسر کانتور نادیده گرفته می‌شوند.
* دقت آنها بستگی به تدبیر همگرا دارد.

فرمول انرژی
-----------

یک مار قابل ارتجاع ساده با مجموعه ای از n نقطه {\displaystyle v\_{i}} تعریف می‌شود که {\displaystyle i=0,\ldots ,n-1}، ترم انرژی درونی انعطاف‌پذیر {\displaystyle {\displaystyle E\_{internal}}}، و انرژی بر اساس لبه خارجی {\displaystyle {\displaystyle E\_{external}}}نامیده می‌شود. هدف از اصطلاح انرژی درونی، کنترل تغییرات ساخته شده در مار است و هدف از اصطلاح انرژی خارجی، کنترل اتصالات کانتور بر روی تصویر است. انرژی خارجی معمولاً ترکیبی از نیروهای مربوط به {\displaystyle {\displaystyle E\_{image}}}خود تصویر و نیروهای{\displaystyle {\displaystyle E\_{con}}} محدود کننده معرفی شده توسط کاربر است.

عملکرد انرژی مارها مجموع انرژی خارجی و انرژی داخلی آن است یا به عبارتی:

{\displaystyle E\_{snake}^{\*}=\int \limits \_{0}^{1}E\_{snake}(\mathbf {v} (s))\,ds=\int \limits \_{0}^{1}(E\_{internal}(\mathbf {v} (s))+E\_{image}(\mathbf {v} (s))+E\_{con}(\mathbf {v} (s)))\,ds}

### انرژی درونی

انرژی داخلی مار از تداوم کانتور تشکیل شده‌است {\displaystyle E\_{cont}} و صافی کانتور {\displaystyle E\_{curv}}.

{\displaystyle E\_{internal}=E\_{cont}+E\_{curv}}

می‌توان به صورت زیر گسترش داد:

{\displaystyle E\_{internal}={\frac {1}{2}}(\alpha \,\!(s)\left|\mathbf {v} \_{s}(s)\right\vert ^{2})+{\frac {1}{2}}(\beta \,\!(s)\left|\mathbf {v} \_{ss}(s)\right\vert ^{2})={\frac {1}{2}}{\bigg (}\alpha \,\!(s)\left\|{\frac {d{\bar {v}}}{ds}}(s)\right\Vert ^{2}+\beta \,\!(s)\left\|{\frac {d^{2}{\bar {v}}}{ds^{2}}}(s)\right\Vert ^{2}{\bigg )}}

که {\displaystyle \alpha (s)} و {\displaystyle \beta (s)} وزن تعریف شده توسط کاربر هستند که حساسیت عملکرد انرژی داخلی به مقدار کشش در مار و مقدار انحنای مار را محاسبه می‌کند و به این ترتیب تعداد محدودیت‌های شکل مار را کنترل می‌کند. در عمل، وزن بزرگ {\displaystyle \alpha (s)} برای مدت زمان تداوم تغییرات در فاصله بین نقاط در کانتور را جبران می‌کند. وزن بزرگ {\displaystyle \beta (s)} برای مدت زمان نرم شدگی، نوسانات در کانتور را جبران می‌کند و خطوط را به عنوان یک صفحه نازک عمل می‌کند.

### انرژی تصویر

انرژی در تصویر برخی از ویژگی‌های تصویر است. این یکی از رایج‌ترین اصلاحات در روش‌های مشتق شده‌است. ویژگی‌ها در تصاویر و تصاویر خود را می‌توان در بسیاری از روش‌های مختلف پردازش شده‌است.
برای یک تصویر {\displaystyle I(x,y)}، خطوط، لبه‌ها و انتهای موجود در تصویر، فرمول بندی کلی انرژی به دلیل تصویر است:

{\displaystyle E\_{image}=w\_{line}E\_{line}+w\_{edge}E\_{edge}+w\_{term}E\_{term}},

جایی که، {\displaystyle w\_{line}}, {\displaystyle w\_{edge}}, {\displaystyle w\_{term}} وزن این ویژگی‌های برجسته هستند. وزن‌های بالاتر نشان می‌دهد که ویژگی برجسته سهم بیشتری نسبت به نیروی تصویر داشته‌است.

#### خط عملکردی

تابع خط است که شدت تصویر است که می‌تواند به عنوان نشان داده شود

{\displaystyle E\_{line}=I(x,y)}

نشانه ای از {\displaystyle w\_{line}} تعیین خواهد کرد که آیا خط به خطوط تاریک یا خطوط نور جذب خواهد شد.
برخی از کاهش صوت یا نویز ممکن است بر روی تصویر استفاده شود، و سپس عملکرد تابع خط به نظر می‌رسد

{\displaystyle E\_{line}=filter(I(x,y))}
#### لبه کاربردی

لبه عملکردی بر اساس شیب تصویر است. یک اجرای این است

{\displaystyle E\_{edge}=-\left|\nabla I(x,y)\right\vert ^{2}}

یک مار که دور از کانتور مورد نظر قرار دارد ممکن است به اشتباه به حداقل محلی نزدیک شود. به منظور اجتناب از این کمینه‌های محلی، می‌توان از ادامه فضای مقیاس استفاده کرد. این با استفاده از یک فیلتر تاری در تصویر به دست می‌آید و به میزان محاسبه می‌شود که محاسبات پیشرفت می‌کند تا تناسب مار را اصلاح کند. عملکرد انرژی با استفاده از مقیاس فضا ادامه دارد

{\displaystyle E\_{edge}=-\left|G\_{\sigma }\*\nabla ^{2}I\right\vert ^{2}}

جایی که {\displaystyle G\_{\sigma }} گاوسی با انحراف معیار {\displaystyle \sigma } است. حداقل این تابع در عبور از صفر قرار دارد {\displaystyle G\_{\sigma }\nabla ^{2}I} که لبه‌ها را بر اساس نظر مارر هیلدرت تعریف می‌کنند.

#### خاتمه عملیات

انحنای سطوح سطح در یک تصویر تقریباً صاف می‌تواند برای تشخیص گوشه‌ها و انتهای یک تصویر استفاده شود. با استفاده از این روش، {\displaystyle C(x,y)} تصویری که توسط

{\displaystyle C(x,y)=G\_{\sigma }\*I(x,y)}
با زاویه شیب

{\displaystyle \theta =\arctan {\Bigg (}{\frac {C\_{y}}{C\_{x}}}{\Bigg )}},

بردارهای واحد در امتداد جهت گرادیان

{\displaystyle \mathbf {n} =(\cos \theta ,\sin \theta )},

و بردارهای واحد عمود بر جهت گرادیان

{\displaystyle \mathbf {n} \_{\perp }=(-\sin \theta ,\cos \theta )}

عملکرد خاتمه انرژی به صورت زیر نشان داده می‌شود:

{\displaystyle E\_{term}={\partial \theta \over \partial n\_{\perp }}={\partial ^{2}C/\partial n\_{\perp }^{2} \over \partial C/\partial n}={{C{yy}C\_{x}^{2}-2C\_{xy}C\_{x}C\_{y}+C\_{xx}C\_{y}^{2}} \over (C\_{x}^{2}+C\_{y}^{2})^{3/2}}}
### انرژی محدود

بعضی از سیستم‌ها، از جمله پیاده‌سازی مارها اصلی، برای تعامل کاربر برای هدایت مارها، نه تنها در موقعیت اولیه، بلکه در شرایط انرژی آنها، امکان‌پذیر است. چنین محدودیتی انرژی {\displaystyle E\_{con}} می‌تواند به‌طور تعاملی هدایت مار به سمت یا دور از ویژگی‌های خاص مورد استفاده قرار گیرد.

بهینه‌سازی از طریق رسیدن به گرادیان
-----------------------------------

با توجه به یک حدس اولیه برای یک مار، عملکرد انرژی مار به‌طور تکراری کمینه می‌شود. به حداقل رساندن گرادیان کاهشی یکی از ساده‌ترین بهینه‌سازی‌ها می‌باشد که می‌تواند برای به حداقل رساندن انرژی مار استفاده شود. هر تکرار یک گام در شیب منفی نقطه با اندازه گام کنترل شده‌است {\displaystyle \gamma } برای پیدا کردن مینیمم‌های محلی این به حداقل رساندن شیب نزولی می‌تواند به عنوان مثال پیاده‌سازی شود

{\displaystyle {\bar {v}}\_{i}\leftarrow {\bar {v}}\_{i}+F\_{snake}({\bar {v}}\_{i})}
جایی که {\displaystyle F\_{snake}({\bar {v}}\_{i})} نیروی مار است که توسط منفی گرادیان میدان انرژی تعریف می‌شود.

{\displaystyle F\_{snake}({\bar {v}}\_{i})=-\nabla E\_{snake}({\bar {v}}\_{i})=-{\Bigg (}w\_{internal}\nabla E\_{internal}({\bar {v}}\_{i})+w\_{external}\nabla E\_{external}({\bar {v}}\_{i}){\Bigg )}}
با فرض وزن {\displaystyle \alpha (s)} و {\displaystyle \beta (s)} ثابت با توجه به {\displaystyle s}، این روش تکرار می‌تواند به ساده‌تر شدن باشد

{\displaystyle {\bar {v}}\_{i}=\leftarrow {\bar {v}}\_{i}-\gamma {\Bigg \{}w\_{internal}{\bigg [}\alpha {\frac {\partial ^{2}{\bar {v}}}{\partial s^{2}}}({\bar {v}}\_{i})+\beta {\frac {\partial ^{4}{\bar {v}}}{\partial s^{4}}}({\bar {v}}\_{i}){\bigg ]}+\nabla E\_{ext}({\bar {v}}\_{i}){\Bigg \}}}

تقریب گسسته
-----------

در عمل، تصاویر دارای وضوح محدود هستند و تنها می‌توانند بر روی گام‌های زمانی محدود {\displaystyle \tau }قرار گیرند. به این ترتیب تقریبهای گسسته باید برای اجرای عملی مارها ساخته شود.
عملکرد انرژی مارها می‌تواند با استفاده از نقاط گسسته مارها تقریباً محاسبه شود.

{\displaystyle E\_{snake}^{\*}\approx \displaystyle \sum \_{1}^{n}E\_{snake}({\bar {v}}\_{i})}

به همین ترتیب، نیروهای مار را می‌توان تقریبی به عنوان

{\displaystyle F\_{snake}^{\*}\approx -\displaystyle \sum \_{1}^{n}\nabla E\_{snake}({\bar {v}}\_{i})}

تقریب گرادیان را می‌توان با استفاده از هر روش تقریبی محدود با توجه به *s*, مانند اختلاف محدود.

### بی‌ثباتی عددی به دلیل زمان گسسته

معرفی زمان گسسته به الگوریتم می‌تواند به روز رسانی‌هایی ارائه کند که مارها از حداقل‌ها جذب شده‌است؛ این بیشتر می‌تواند منجر به نوسانات در اطراف حداقل شود یا منجر به کمینه‌های مختلف یافت شود.

این را می‌توان از طریق تنظیم گام زمانی که اندازه گام هرگز بیشتر از یک پیکسل به علت نیروهای تصویر است، اجتناب کنید. با این حال، در مناطق کم انرژی، انرژی‌های داخلی بر روی به روز رسانی تسلط دارند.

به‌طور متناوب، نیروهای تصویر می‌توانند برای هر مرحله عادی شوند به طوری که تصویر فقط مارها را به صورت یک پیکسل به روز می‌کند. این را می‌توان به عنوان فرموله کرد:

{\displaystyle F\_{image}=-k{\frac {\nabla E\_{image}}{\|\nabla E\_{image}\|}}}

جایی که {\displaystyle \tau k} نزدیک به مقدار اندازه پیکسل است. این مسئله از غلبه بر انرژی‌های داخلی که از تنظیم گام زمان جلوگیری می‌کند.

### بی‌ثباتی عددی به دلیل فضای گسسته

انرژی در یک تصویر مداوم ممکن است عبور صفر داشته باشد که به عنوان یک پیکسل در تصویر وجود ندارد. در این مورد، یک نقطه در مار بین دو پیکسل که همسایه آن عبور صفر است، نوسان می‌کند. این نوسان را می‌توان با استفاده از درون یابی بین پیکسل به جای نزدیکترین همسایه اجتناب کرد.

پیاده‌سازی
----------

pseudocode زیر روش مار را به صورت کلی اجرا می‌کند:

```
function v = snakes (I, v)
 % INPUT: N by M image I, a contour v of n control points
 % OUTPUT: converged contour v of n control points

 E\_image = generateImageEnergy (I);

 while not converged
 F\_cont = weight.alpha \* contourDerivative(v, 2);
 F\_curv = weight.beta \* contourDerivative(v, 4);
 F\_image = interp2 (E\_image, v(:,2), v(:,1));
 F\_image\_norm = weight.k \* F\_image ./ norm (F\_image);
 F\_con = inputForces();

 F\_internal = F\_cont + weight.external \* F\_curv;
 F\_external = weight.external \* (F\_image + F\_con);

 v = updateSnake(v, F\_internal, F\_external);

 checkConvergence ();
 end

end

```

جایی که *generateImageEnergy (I)* را می‌توان به عنوان نوشته کرد

```
function E_image = generateImageEnergy (I)
 [C, Cx, Cy, Cxx, Cxy, Cyy] = generateGradients (I);

 E\_line = I;
 E\_edge = -(Cx.^2 + Cy.^2)^0.5;
 E\_term = (Cyy.\*Cx.^2 - 2\*Cxy.\*Cx.\*Cy + Cxx.\*Cy.^2)./((1 + Cx.^2 + Cy.^2).^(1.5));

 E\_image = weight.line \* E\_line + weight.edge \* E\_edge + weight.term \* E\_term;
end

```

برخی از انواع مارها
-------------------

روش پیش فرض مارها دارای محدودیت‌های مختلف و موارد گوشه ای است که همگرایی عملکرد ضعیفی دارد. چندین جایگزین وجود دارد که مسائل مربوط به روش پیش فرض را در بر می‌گیرد، هرچند با مشارکت خودشان. چند نفر در اینجا لیست شده‌اند.

### مدل مار GVF

مدل مار مارپیچ گرادیان (GVF) دو مسئله را با مارها مطرح می‌کند:

* عملکرد ضعیف همگرا برای مرزهای مقعر
* عملکرد ضعیف همگرا زمانی که مار از مقدار کمتری شروع می‌شود

در دو بعد، فیلد بردار GVF، کارکرد انرژی را به حداقل می‌رساند

{\displaystyle E\_{GVF}=\int \int \mu (u\_{x}^{2}+u\_{y}^{2}+v\_{x}^{2}+v\_{y}^{2})+|\nabla f|^{2}|\mathbf {v} -\nabla f|^{2}dxdy}

جایی که {\displaystyle \mu } یک اصطلاح هموار کنترل شده‌است. این را می‌توان با حل معادلات اویل حل کرد

{\displaystyle \mu \nabla ^{2}u-{\Bigg (}u-{\frac {\partial }{\partial x}}F\_{ext}{\Bigg )}{\Bigg (}{\frac {\partial }{\partial x}}F\_{ext}(x,y)^{2}+{\frac {\partial }{\partial y}}F\_{ext}(x,y)^{2}{\Bigg )}=0}

{\displaystyle \mu \nabla ^{2}v-{\Bigg (}v-{\frac {\partial }{\partial y}}F\_{ext}{\Bigg )}{\Bigg (}{\frac {\partial }{\partial x}}F\_{ext}(x,y)^{2}+{\frac {\partial }{\partial y}}F\_{ext}(x,y)^{2}{\Bigg )}=0}

این را می‌توان از طریق تکرار به سمت یک مقدار ثابت حل کرد.

{\displaystyle u\_{i+1}=u\_{i}+\mu \nabla ^{2}u\_{i}-{\Bigg (}u\_{i}-{\frac {\partial }{\partial x}}F\_{ext}{\Bigg )}{\Bigg (}{\frac {\partial }{\partial x}}F\_{ext}(x,y)^{2}+{\frac {\partial }{\partial y}}F\_{ext}(x,y)^{2}{\Bigg )}}

{\displaystyle v\_{i+1}=v\_{i}+\mu \nabla ^{2}v\_{i}-{\Bigg (}v\_{i}-{\frac {\partial }{\partial y}}F\_{ext}{\Bigg )}{\Bigg (}{\frac {\partial }{\partial x}}F\_{ext}(x,y)^{2}+{\frac {\partial }{\partial y}}F\_{ext}(x,y)^{2}{\Bigg )}}

این نتیجه نیروی پیش فرض خارجی را جایگزین می‌کند.

{\displaystyle F\_{ext}^{\*}=F\_{GVF}}

مشکل اصلی با استفاده از GVF نرم کردن ترم {\displaystyle \mu } است که موجب گرد کردن لبه‌های کنتور می‌شود. کاهش ارزش {\displaystyle \mu } گرد کردن را کاهش می‌دهد اما مقدار صاف کردن را تضعیف می‌کند.

### مدل بالون

مدل بالون این مشکلات را با مدل کنتور پیش فرض فعال شرح می‌دهد:

* مار به لبه‌های دور جذب نشده‌است.
* مار در داخل کوچک می‌شود اگر هیچ نیروی تصویری قابل توجه بر روی آن تأثیری نداشته باشد
* یک مار که بزرگتر از کانیم مینیموم است در نهایت آن را کاهش می‌دهد، اما یک مار کوچکتر از کانون مینیمم، حداقل‌ها را پیدا نخواهد کرد و در عوض ادامه می‌یابد.

مدل بالون یک دوره تورم را به نیروهایی که بر روی مار اعمال می‌کنند معرفی می‌کند

{\displaystyle F\_{inflation}=k\_{1}{\vec {n}}(s)}

که {\displaystyle {\vec {n}}(s)} بردار واحد معمولی منحنی در {\displaystyle v(s)} و {\displaystyle k\_{1}} بزرگی نیرو است. {\displaystyle k\_{1}} باید بزرگی یکسانی به عنوان {\displaystyle k} ضریب نرمالیزه تصویر داشته باشد و در ارزش از {\displaystyle k} کمتر باشد برای مجاز کردن نیروها در لبه‌های تصویر برای برانگیختن نیروی تورم.
سه مسئله از استفاده از مدل بالون به وجود آمده‌است:

* به جای کوچک شدن، مار به مینیمم گسترش می‌یابد و حداقل حدفاصل‌های کوچک‌تر از آن را پیدا نمی‌کند.
* نیروی بیرونی باعث می‌شود که حدفاصل کمی بزرگتر از حداقل باشد.
* نیروی تورم می‌تواند نیروها را از لبه‌های ضعیف ببندد، و مسئله را با مارها نادیده می‌گیرد و ویژگی‌های ضعیف را در یک تصویر نادیده می‌گیرد.

### مدل مارهای نفوذی

مدل مار نفوذی حساسیت مارها به نویز، کلفت و انسداد را مورد توجه قرار می‌دهد. این یک اصلاح ویژگی‌های مامفورد-شاه و محدودیت کارتونی آن را به کار می‌گیرد و شامل دانش شکل است. عملکرد تصویر پیش فرض تصویر {\displaystyle E\_{image}} جایگزین شده‌است با

{\displaystyle E\_{image}^{\*}=E\_{i}+\alpha E\_{c}}

که {\displaystyle E\_{i}} E\_i براساس یک کارکرد مامفورد-شاه اصلاح شده‌است

{\displaystyle E[J,B]={\frac {1}{2}}\int \_{D}(I({\vec {x}})-J({\vec {x}}))^{2}d{\vec {x}}+\lambda {\frac {1}{2}}\int \_{D/B}{\vec {\nabla }}J({\vec {x}})\cdot {\vec {\nabla }}J({\vec {x}})d{\vec {x}}+\nu \int \_{0}^{1}{\Bigg (}{\frac {d}{ds}}B(s){\Bigg )}^{2}ds}

که {\displaystyle J({\vec {x}})} یک مدل صاف و از تصویر {\displaystyle I({\vec {x}})} با دامنه {\displaystyle D}. مرزها {\displaystyle B(s)} تعریف شده‌اند

{\displaystyle B(s)=\sum \_{n=1}^{N}{\vec {p}}\_{n}B\_{n}(s)}

که {\displaystyle B\_{n}(s)} عملکرد پایه‌های B-اسپلین درجه دوم و {\displaystyle {\vec {p}}\_{n}} نقاط کنترل اسپلین هستند. محدودیت کارتونی اصلاح شده به عنوان {\displaystyle \lambda \to \infty } و تنظیمات معتبر از {\displaystyle E\_{i}}.
تابع {\displaystyle E\_{c}} بر اساس آموزش از تصاویر باینری از خطوط مختلف است و توسط پارامتر {\displaystyle \alpha }. برای یک توزیع گاوسی از بردارهای نقطه کنترل z {\displaystyle {\vec {z}}} با میانگین بردار نقطه کنترل {\displaystyle {\vec {z}}\_{0}} و ماتریس کواریانس {\displaystyle \Sigma } سیگما، انرژی درجه دوم که با احتمال گاوسی مطابقت دارد

{\displaystyle E\_{c}({\vec {z}})={\frac {1}{2}}({\vec {z}}-{\vec {z}}\_{0})^{t}\Sigma ^{\*}({\vec {z}}-{\vec {z}}\_{0})}

استحکام این روش به قدرت داده‌های آموزشی و نیز تنظیم عملکرد مامورد-شاه تغییر یافته بستگی دارد. مارهای مختلف نیاز به مجموعه داده‌های مختلف آموزش و تنظیمات دارند.

### خطوط هندسی فعال

کانتور فعال هندسی، یا کانونی فعال ژئودزیک (GAC) یا کانونی‌های فعال کانونی، ایده‌هایی را از تکامل یقین ایدل استفاده می‌کند. کانتورها بسته به تشخیص اشیاء در تصویر تقسیم و ادغام می‌شوند. این مدلها عمدتاً از مجموعه‌های سطح الهام گرفته شده‌است و به‌طور گسترده در محاسبات تصویر پزشکی استفاده شده‌است.
به عنوان مثال، معادله تکاملی منحنی زاویه گرادیان GAC است

{\displaystyle {\frac {\partial C}{\partial t}}=g(I)(c+\kappa ){\vec {N}}-\langle \nabla g,{\vec {N}}\rangle {\vec {N}}}

که {\displaystyle g(I)} یک عمل متوقف است، *c* یک ضریب لاگرانژ است، {\displaystyle \kappa } منحنی و {\displaystyle {\vec {N}}} واحد نرمال داخلی است. این شکل خاص از معادله تکامل منحنی تنها به سرعت در جهت نرمال وابسته است؛ بنابراین، با قرار دادن تابع تنظیم سطح، می‌توان آن را به صورت معادل در یک فرم یورلین بازنویسی کرد {\displaystyle \Phi } به آن به شرح زیر است

{\displaystyle {\frac {\partial \Phi }{\partial t}}=|\nabla \Phi |{\rm {div}}{\Bigg (}g(I){\frac {\nabla \Phi }{|\nabla \Phi |}}{\Bigg )}+cg(I)|\nabla \Phi |}

این اصلاح ساده و در عین حال قدرتمند سطح را قادر می‌سازد خطوط فعال برای مرتب‌سازی تغییرات توپولوژی در طی تکامل منحنی نزول شیب. این پیشرفت فوق‌العاده ای را در زمینه‌های مرتبط الهام داده‌است و با استفاده از روش‌های عددی برای حل دوباره تعریف سطح، اکنون به عنوان روش تعیین سطح شناخته می‌شود. وانگ و چان استدلال می‌کنند که تمام معادلات تکاملی منحنی باید مستقیماً توسط آن حل شود.

تحولات اخیر در کانتورهای فعال در زمینه مدل سازی خواص منطقه ای، ترکیب قالب‌های انعطاف‌پذیر و تقسیم‌بندی کاملاً اتوماتیک و غیره.

مدل‌های آماری که ترکیبی از ویژگی‌های محلی و جهانی هستند، توسط لانکتون و آلن تاننبام فرموله شده‌اند.

ارتباط با کاهش گراف‌ها
----------------------

برش گراف یا حداکثر جریان / دقیقه برش یک روش عمومی برای به حداقل رساندن یک شکل خاص انرژی به نام میدان مغناطیسی مارکوف (MRF) است. روش تقسیم گراف نیز به تقسیم‌بندی تصویر اعمال شده‌است و گاهی اوقات از روش تعیین سطح در زمانی که مدل MRF استفاده می‌کند یا می‌تواند توسط MRF تقریب یابد، بهتر عمل می‌کند.

منابع
-----

1. 1 2  Kass, M.; Witkin, A.; Terzopoulos, D. (1988). "Snakes: Active contour models" (PDF). *International Journal of Computer Vision*. **1** (4): 321. CiteSeerX 10.1.1.124.5318. doi:10.1007/BF00133570. Archived from the original (PDF) on 12 January 2016. Retrieved 16 February 2019.
2. ↑  Snakes: an active model, Ramani Pichumani,
3. ↑  Dr. George Bebis, University of Nevada,
4. ↑  Image Understanding, Bryan S. Morse, Brigham Young University,1998-2000
5. 1 2 3  Laurent D. Cohen, On active contour models and balloons, CVGIP: Image Understanding, Volume 53, Issue 2, March 1991, Pages 211-218, ISSN 1049-9660, doi:10.1016/1049-9660(91)90028-N
6. ↑  C. Xu and J.L. Prince, "Gradient Vector Flow: A New External Force for Snakes," Proc. IEEE Conf. on Comp. Vis. Patt. Recog. (CVPR), Los Alamitos: Comp. Soc. Press, pp. 66–71, June 1997,
7. ↑  Cremers, D.; Schnorr, C.; Weickert, J. (2001). *Diffusion-snakes: combining statistical shape knowledge and image information in a variational framework*. *Proceedings. IEEE Workshop on*. Vol. 50. pp. 137–144. CiteSeerX 10.1.1.28.3639. doi:10.1109/VLSM.2001.938892. ISBN 978-0-7695-1278-5.
8. 1 2  Geodesic Active Contours, V. Caselles, R. Kimmel, G. Sapiro
9. ↑  Conformal curvature flows: From phase transitions to active vision, Satyanad Kichenassamy, Arun Kumar, Peter Olver, Allen Tannenbaum and Anthony Yezzi
10. ↑  Wang, Junyan; Chan, Kap Luk (2014-07-08). "Active Contour with a Tangential Component". *Journal of Mathematical Imaging and Vision*. **51** (2): 229–247. arXiv:1204.6458. doi:10.1007/s10851-014-0519-y. ISSN 0924-9907.
11. ↑  Lankton, S. ; Tannenbaum, A. , "Localizing Region-Based Active Contours," Image Processing, IEEE Transactions on, vol.17, no.11, pp.2029,2039, Nov. 2008 doi: 10.1109/TIP.2008.2004611

پیوند به بیرون
--------------

* David Young, March 1995
* Snakes: Active Contours, CVOnline
* ICBE, University of Manchester
* Active contours implementation & test platform GUI
* A simple implementation of snakes by Associate Professor Cris Luengo
* MATLAB documentation for activecontour, which segments an image using active contours

### کد نمونه

* Practical examples of different snakes developed by Prince and Xu
* Basic tool to play with snakes (active contour models) from Tim Cootes, University of Manchester
* Matlab implementation of 2D and 3D snake including GVF and balloon force
* Matlab Snake Demo by Chris Bregler and Malcolm Slaney, Interval Research Corporation.
* A Demonstration Using Java
* Active Contours implementation & test platform GUI by Nikolay S. and Alex Blekhman implementing "Active Contours without Edges"
* Active Contour Segmentation by Shawn Lankton implementing "Active Contours without Edges"
* Geometric Active Contour Code by Jarno Ralli
* Morphological Snakes