¿ÙͼÊÇ PS ÖеÄÒ»Ïî³£Óü¼Êõ¡£µ«ÊÇÒª×öµ½ÍêÃÀµØ½«Í¼ÏñÖеÄÄ¿±êÑ¡È¡³öÀ´ÍùÍù·Ñʱ·ÑÁ¦¡£½üÈÕ£¬Ò»¸öÃûΪ PyMatting µÄÏîÄ¿ÎÞÒÉÄܹ»°ïÖúÄã¡£
ÏîÄ¿µØÖ·£ºhttps://github.com/pymatting/pymatting
¿ÙͼµÄ AI Ó¦Óó¡¾°ÊÇÕâÑùµÄ£º¸ø¶¨Ò»ÕÅͼÏñ£¬Í¨¹ý»®¶¨Ò»¸öÇøÓò£¬AI Ó¦µ±Äܹ»¹À¼Æµ½»®¶¨ÇøÓòÄÚµÄÇ°¾°Í¼Ä¿±ê£¬²¢½«Õâ¸öÇ°¾°ÍêÕûµØ³éÈ¡³öÀ´£¬ÓÃÀ´Ìæ»»µ½ÆäËû±³¾°µÄͼÏñÖÐÈ¥¡£
Òò´Ë£¬¿ÙͼÐèÒªÁ½¸ö AI ÄÜÁ¦£ºÊ×ÏÈ£¬AI ÐèÒªÄܹ»ÔÚ»®¶¨µÄÇøÓòÄÚʶ±ðÄ¿±ê¡£Æä´Î£¬AI ÒªÄܹ»ÍêÕûµØ½«Ä¿±ê³éÈ¡³öÀ´£¬Ã»Ó뮶¨´íÎóµÄ±ßÔµ¡¢Ä£ºýµÄͼÏñµÈÎÊÌâ¡£
ÉÏͼΪÏîÄ¿×÷ÕßÌṩµÄʾÀý¡£¸ø¶¨Ò»Ö»¶¯ÎïµÄͼÏñ£¨×óÉÏ£©£¬ÒÔ¼°ÈË»®¶¨µÄÇøÓò£¨ÓÒÉÏ£©£¬Ëã·¨Ó¦µ±Äܹ»»ñµÃ»®¶¨ÇøÓòÄÚÄ¿±êµÄ°¢¶û·¨Í¨µÀ£¬¼´Çø·ÖÇ°¾°ºÍ±³¾°µÄºÚ°×ÂÖÀª£¨×óÏ£©¡£ÓÐÁËÕâÒ»Êý¾Ý£¬¾Í¿ÉÒÔ´ÓÔͼÖпÙȥĿ±ê£¬²¢Òƶ¯µ½ÐµÄͼÏñÖÐÈ¥£¨ÓÒÏ£©¡£
¾ÝÏîÄ¿½éÉÜ£¬PyMatting ¾ßÓÐÒÔÏÂÌØÐÔ¡£
Ê×ÏÈ£¬ÏîÄ¿Äܹ»Íê³É°¢¶û·¨¿Ùͼ£¨Alpha Matting£©£¬ÆäÖаüÀ¨ Closed-Form ¿Ùͼ¡¢´óºË¿Ùͼ£¨Large Kernel Matting£©¡¢KNN ¿Ùͼ¡¢»ùÓÚѧϰµÄÊý×Ö¿Ùͼ£¨Learning Based Digital Matting£©¡¢Ëæ»úÓÎ×ߣ¨Random Walk£©¿ÙͼµÈËã·¨¡£
ͬʱ£¬ÏîÄ¿Ò²ÄÜÍê³ÉÇ°¾°Ô¤¹À£¬°üÀ¨ Clos Form Ç°¾°Ô¤¹ÀºÍ¶à¼¶±ðÇ°¾°Ô¤¹À£¨»ùÓÚ CPU¡¢CUDA ºÍ OpenCL µÈ£©Ëã·¨¡£
¸ÃÏîÄ¿»¹¿ÉÒÔ½øÐпìËÙ¶àÏß³Ì KNN ËÑË÷¡¢²»ÍêÈ«ãÐÖµ»¯³þÁÐ˹»ù·Ö½â£¨incomplete thresholded Cholesky decomposition£©¡¢V ÂÖ¼¸ºÎ¶àÍø¸ñÔ¤Ìõ¼þ×Ó£¨V-Cycle Geometric Multigrid preconditioner£©µÈ¡£
ÔÚʹÓÃÇ°£¬ÄãÐèÒª±£Ö¤µçÄÔ°²×°ÏàÓ¦µÄ Python »·¾³£¨Python 3£©£¬Í¬Ê±ÐèÒªÒÔÏ°²×°°ü£º
ÓÉÓÚÏîÄ¿ÐèÒª GPU£¬Òò´ËÒ²ÐèÒª GPU Ïà¹ØÖ§³Ö£º
³ý´ËÖ®Í⣬ΪÁ˽øÐвâÊÔ£¬Ò²ÐèÒª£º
ΪÁË·½±ãʹÓã¬×÷ÕßÌṩÁËһЩʾÀý´úÂë¡£ÀýÈ磬ÈçÏ´úÂëÖУ¬¸ø¶¨ÔʼͼÏñºÍ¿Ùͼ¿ò£¬¿ÉÒÔ³éÈ¡³ö°¢¶û·¨Ç°¾°£º
from?pymatting?import?cutout??cutout(??????#?input?image?path"data/lemur.png",??????#?input?trimap?path"data/lemur_trimap.png",??????#?output?cutout?path"lemur_cutout.png")?
×÷Õß»¹ÌṩÁ˸߼¶´úÂ룬ֱ½Ó½øÐпÙͼ£¬Éú³ÉÐÂͼÏñ£º
image?=?load_image("../data/lemur/lemur.png",?"RGB",?scale,?"box")??trimap?=?load_image("../data/lemur/lemur_trimap.png",?"GRAY",?scale,?"nearest")??#?estimate?alpha?from?image?and?trimap??alpha?=?estimate_alpha_cf(image,?trimap)??#?make?gray?background??new_background?=?np.zeros(image.shape)??new_background[:,?:]?=?[0.5,?0.5,?0.5]??#?estimate?foreground?from?image?and?alpha??foreground,?background?=?estimate_foreground_ml(image,?alpha,?return_background=True)??#?blend?foreground?with?background?and?alpha,?less?color?bleeding??new_image?=?blend(foreground,?new_background,?alpha)?
³ýÁË´úÂëʾÀýÍ⣬ÏîÄ¿»¹ÌṩÁ˲âÊÔ´úÂ룬¿ÉÔÚÖ÷Ŀ¼ÖÐÔËÐУº
python3?tests/download_images.py??pip3?install?-r?requirements_tests.txt??pytest?
ÕâÒ»²âÊÔÄܹ»¸²¸Ç 89% µÄ´úÂë¡£
³ýÁËÏîÄ¿Í⣬×÷Õß»¹ÌṩÁ˲»Í¬µÄ¿ÙͼËã·¨µÄ»ù×¼²âÊÔ½á¹û£¬ÈçÏÂËùʾ£ºpytest>=5.3.4
²»Í¬Ëã·¨ÔÚ²âÊÔÊý¾Ý¼¯Éϵľù·½Îó²î´óС¡£
¿ÉÒÔ¿´³ö£¬»ùÓÚѧϰµÄËã·¨ºÍ Closed-Form Ëã·¨¶¼ÄÜÈ¡µÃ²»´íµÄЧ¹û¡£
ÍêÕûµÄ»ù×¼²âÊÔ½á¹û£ºhttps://pymatting.github.io/benchmark.html
ÁìȡרÊô 10ÔªÎÞÃż÷ȯ
˽Ïí×îР¼¼Êõ¸É»õ