タグ

algorithmとtechに関するICHIROのブックマーク (5)

  • Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog

    はてなアプリケーションエンジニアの id:takuya-a です。 この記事では、Microsoft の検索エンジン Bing で採用された BitFunnel アルゴリズムを紹介します。 昨年のエンジニアアドベントカレンダーでは、文字列検索のアルゴリズム全般について紹介しました(文字列アルゴリズムの学びかた - Hatena Developer Blog)。今年はそのなかでも、インデックス(索引)を使った全文検索アルゴリズムについてのお話になります。 この記事の前半は全文検索の入門にもなっていますので、検索技術になじみがない方にも楽しんでいただけるのではないでしょうか。 逆に、「そんなのもう知ってるよ!」という方は、題である「BitFunnel アルゴリズムの詳細」から目を通していただければと思います。 この記事は、はてなエンジニア Advent Calendar 2017の21日目の

    Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
  • H.264の秘密 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) (2016/12/11、いただきましたフィードバックをもとに翻訳を修正いたしました。) H.264は、動画圧縮コーデックの標準規格です。ネット上の動画、Blu-ray、スマホ、セキュリティカメラ、ドローンなどなど、今やあらゆるところでH.264が使われています。 H.264は注目すべき技術のひとつです。たったひとつの目標、つまりフルモーションビデオの送信に要するネットワーク帯域を削減することを目指した30年以上の努力の結晶なのです。 技術的な面でも、H.264はとても興味深い規格です。この記事では、その一部について概要レベルでの知識を得られることでしょう。あまり複雑だと感じさせないようにするつもりです。今回おはなしする概念の多くは動画圧縮全般にあてはまるものであり、H.264に限ったものではありません

    H.264の秘密 | POSTD
  • Web上の膨大な画像に基づく自動カラリゼーション - A Successful Failure

    2010年11月03日 Web上の膨大な画像に基づく自動カラリゼーション Tweet 以前『Web上の膨大な画像に基づく自動画像補完技術の威力』において、Web上の膨大な画像から欠損部分を自動的に補完する手法*1について紹介した(図1)。 図1:Scene Completion Using Millions of Photographs これは、Flickr等から大量にかき集めてきた画像から類似度の高い画像を自動的に抽出し、欠損部分にハメ込むことで違和感の無い補完画像を生成するアプローチであり、そのアイデアと、生成される補完画像のクオリティが話題になった。素材の量が質に変化する、まさにWeb時代に適したアプローチである。 エントリでは同様の手法を用いて、失われた色を取り戻すカラリゼーション(colorization)について紹介したい。カラリゼーションとはコンピュータを用いたモノクロ画像

  • Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure

    画像内に映り込んだ所望のオブジェクトを排除し、違和感の無い画像を生成するシーン補完技術に関しては近年複数の研究成果が発表されている。しかし中でも2007年のSIGGRAPHにて米カーネギメロン大のJames HaysとAlexei A. Efrosが発表した手法*1はブレークスルーとなりうる画期的なものだ。 論より証拠、早速適用例を見てみよう。エントリで利用する画像はPresentationからの引用である。元画像の中から邪魔なオブジェクト等の隠蔽すべき領域を指定すると、その領域が補完された画像が自動的に生成される。 アルゴリズム 効果は抜群だがアイデア自体は単純なものだ。Web上には莫大な数量の画像がアップされており、今や対象となる画像の類似画像を一瞬にして大量に検索することができる。そこで、検索された類似画像で隠蔽領域を完全に置き換えてしまうことで違和感の無い補完画像を生成するのだ。

    Web上の膨大な画像に基づく自動画像補完技術の威力 - A Successful Failure
  • 検索アルゴリズム (3)文字列の検索 -1-

    テキストとパターンの中で、両側に下線が引かれた文字は一致したもの、パターンのみに下線が引かれた文字は不一致を検出した個所を示します。 それでは早速サンプルを示したいと思います。 int strlen( s ) char *s; { int i; for ( i = 0 ; s[i] != '\0' ; i++ ); return( i ); } int strncmp( s1, s2, len ) char *s1,*s2; int len; { int i; int cmpret = 0; for ( i = 0 ; i < len ; i++ ) if ( ( cmpret = s1[i] - s2[i] ) != 0 ) break; return( cmpret ); } char *strstr( Text, Pattern ) char *Text, *Pattern; { i

    ICHIRO
    ICHIRO 2009/03/06
    KMP法
  • 1