「プロの絵描きの線に自動で近づけてくれるソフト」の編集履歴(バックアップ)一覧はこちら

プロの絵描きの線に自動で近づけてくれるソフト」(2010/03/23 (火) 17:03:41) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

---- -プロの絵を真似る処理 -その1曲線の修正 プロが描いた絵からベジェ曲線などの曲線を取り出す。 この曲線の集合をLinesとし要素をL1,,,Lnまでとする。 Linesの曲率をグラフにしこれを統計的に分類、この曲線より作り出された曲線を修正する関数をFとする。 Fが曲線をプロの曲線に近づける関数とする。 処理したい絵をBとする。 B内の曲線の集合をMYLines、要素をML1,ML2,,,MLnとする。 曲線MLiをLinesに近づける処理を NewMLi=F(Lines,MYLines,MLi) とする。 Fは主にMLiの線を、Linesのなかで一番近いラインLjになおしれてくれるなどの処理をする。 ---- -具体的な実装 -適当に描いた絵を漫画家の絵に近づけてくれる処理その1。 -簡単なところからこつこつとLine編 線画の処理。 自分の描いた絵をプロの漫画家や絵描きの線に近づける処理。 1 線で描かれた漫画家の絵を取り込み、画像を解析してラスター曲線に直す。 1-1 曲線を縮小しすべて同じ長さになるように変化させる。(この部分の処理には利点も欠点もあるかもしれない) 2 曲線を一定個数で等幅に区切る。区切った点ごとでの曲率の値をとる、これをRijとする。(i本目の曲線のJ個目の点での曲率という意味) 3 曲率を扱いやすい値に抑えるため適当な曲率の値をrとすると,0<=FR(r)<=1 FRは単調増加関数という関数を考える。 一つの曲線の処理(uを適当な定数とする) 4 Ru0~Rumまでを処理する Luj=f(Ruj)=int(FR(Ruj)*a)とする。曲線からできた数字列を文字列とみなして木構造にはめていき全ての曲線を木構造にはめていく。aは実数である 5 後は、似せたい曲線にも同様にfを施して、木構造と照合する。 6 木構造から似た曲線が見つかれば、その似た曲線の集合と照合して曲線の補正処理を行う 7 見つからなければ曲線を分割、細かく切り分けて木と照合しよく似た曲線が見つかれば、きった曲線を個別に補正処理して、後はこれを綺麗な線でつなげる 8 どうしても似た曲線が見つからないときは、補正したい曲線と真似たい曲線を照合して、曲率のグラフの差の分散が一番小さくなる曲線を探す。 (曲線の長さの差の処理についてはプログラムの過程で処理を考える) -この処理に関する疑問 理想を言えば最初から処理8だけ、差の分散だけで解決できたらと思う。 曲線の長さの処理については、分散+g(曲線の長さの差の^2)    gは適当な関数で分散に小さな影響を与える関数とする。 これを使えば良いかも? -その他の処理法 プロの絵=N(プロの絵を元に素人に真似させた絵) NをニューラルネットとしNは素人の絵からプロの絵に近づける補正をする処理を表す。 この処理を十分な回数ニューラルネットワークに入れて学習させる処理でもいいかもしれないけど、これは膨大な計算量とサンプルがないとまだまだ駄目かもしれない。 局所的な処理には使えるかもしれない? 過去の議論についてはこのページの編集履歴を。 製作過程についてはWeb魚拓を参照のこと。 http://www.pixia.jp/cgi-bin/note/index_.cgiの魚拓をとっている。 Pixia掲示板に投稿した内容を再掲。 兵庫県加古川市加古川町南備後79-16 [[プロの絵描きの線に自動で近づけてくれるソフト色味編]] #comment_num2(size=30,vsize=3,num=20,logpage=イラスト補正コメント)
子供の頃漫画家の絵をまねして描いた経験は誰しも同じだと思います。 自分も将来漫画家になれるかもしれない。 でも絵を大人になったら、うまく描けない現実に愕然とするものです。 今回のソフトはそれをかなえてくれるかもしれません。 自分で描いた絵をパソコンのソフトに入力し、ボタンを押したら漫画家そっくりの絵になるソフト。 今回はそんなソフトの紹介です。 といってもまだアルゴリズムの段階なのですけどね。 (最初の着想は2010/3/14日ごろ、ネットへの投稿は2010/3/20にPixia掲示板に投稿) ---- -プロの絵を真似る処理 -その1曲線の修正 まずは簡単なところから線画の処理から行ってみましょう。 プロが描いた絵からベジェ曲線などの曲線を取り出す。 この曲線の集合をLinesとし要素をL1,,,Lnまでとする。 Linesの曲率をグラフにしこれを統計的に分類、この曲線より作り出された曲線を修正する関数をFとする。 Fが曲線をプロの曲線に近づける関数とする。 処理したい絵をBとする。 B内の曲線の集合をMYLines、要素をML1,ML2,,,MLnとする。 曲線MLiをLinesに近づける処理を NewMLi=F(Lines,MYLines,MLi) とする。 Fは主にMLiの線を、Linesのなかで一番近いラインLjになおしれてくれるなどの処理をする。 ---- -具体的な実装 -適当に描いた絵を漫画家の絵に近づけてくれる処理その1。 -簡単なところからこつこつとLine編 線画の処理。 自分の描いた絵をプロの漫画家や絵描きの線に近づける処理。 1 線で描かれた漫画家の絵を取り込み、画像を解析してラスター曲線に直す。 1-1 曲線を縮小しすべて同じ長さになるように変化させる。(この部分の処理には利点も欠点もあるかもしれない) 2 曲線を一定個数で等幅に区切る。区切った点ごとでの曲率の値をとる、これをRijとする。(i本目の曲線のJ個目の点での曲率という意味) 3 曲率を扱いやすい値に抑えるため適当な曲率の値をrとすると,0<=FR(r)<=1 FRは単調増加関数という関数を考える。 一つの曲線の処理(uを適当な定数とする) 4 Ru0~Rumまでを処理する Luj=f(Ruj)=int(FR(Ruj)*a)とする。曲線からできた数字列を文字列とみなして木構造にはめていき全ての曲線を木構造にはめていく。aは実数である 5 後は、似せたい曲線にも同様にfを施して、木構造と照合する。 6 木構造から似た曲線が見つかれば、その似た曲線の集合と照合して曲線の補正処理を行う 7 見つからなければ曲線を分割、細かく切り分けて木と照合しよく似た曲線が見つかれば、きった曲線を個別に補正処理して、後はこれを綺麗な線でつなげる 8 どうしても似た曲線が見つからないときは、補正したい曲線と真似たい曲線を照合して、曲率のグラフの差の分散が一番小さくなる曲線を探す。 (曲線の長さの差の処理についてはプログラムの過程で処理を考える) -この処理に関する疑問 理想を言えば最初から処理8だけ、差の分散だけで解決できたらと思う。 曲線の長さの処理については、分散+g(曲線の長さの差の^2)    gは適当な関数で分散に小さな影響を与える関数とする。 これを使えば良いかも? -細かい処理 曲線の補正処理については、2つの曲線A,B(Aを漫画家の線、Bを補正して漫画家に近づけたいほう)、2本の曲率の変化をグラフに描いてみれば、曲線をBをAに近づける操作をイメージ化することはとても簡単である。 このイメージにしたがって曲率を補正する関数を作ればよい。 また、ユーザーが曲線 -アルゴリズムの進化 線の幅の変化、色合いの変化、線の密度や絵全体の中での線の流れ、線と交点の関係を考慮に入れた補正処理。 などのより高度な処理を行うには最低でも大学3年生レベルの数学をしっかり理解しておく必要があり、少し管理人には手が出ない状態。 勉強中です。 -その他の処理法 プロの絵=N(プロの絵を元に素人に真似させた絵) NをニューラルネットとしNは素人の絵からプロの絵に近づける補正をする処理を表す。 この処理を十分な回数ニューラルネットワークに入れて学習させる処理でもいいかもしれないけど、これは膨大な計算量とサンプルがないとまだまだ駄目かもしれない。 局所的な処理には使えるかもしれない? 過去の議論についてはこのページの編集履歴を。 製作過程についてはWeb魚拓を参照のこと。 http://www.pixia.jp/cgi-bin/note/index_.cgiの魚拓をとっている。 Pixia掲示板に投稿した内容を再掲。 兵庫県加古川市加古川町南備後79-16 [[プロの絵描きの線に自動で近づけてくれるソフト色味編]] #comment_num2(size=30,vsize=3,num=20,logpage=イラスト補正コメント)

表示オプション

横に並べて表示:
変化行の前後のみ表示: