This is presentation material about proposal of Boost B-tree library translated to japanese.
The original material have presented in BoostCon2011 by Beman Dawes.
This is published under Beman's permission.
This is presentation material about proposal of Boost B-tree library translated to japanese.
The original material have presented in BoostCon2011 by Beman Dawes.
This is published under Beman's permission.
I'm learning elasticsearch now.
This slide is old, new version is here. -> http://blog.johtani.info/blog/2013/08/30/hold-first-elasticsearch-meetup-in-japan/
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
公開URL:https://arxiv.org/pdf/2404.19174
出典:Guilherme Potje, Felipe Cadar, Andre Araujo, Renato Martins, Erickson R. ascimento: XFeat: Accelerated Features for Lightweight Image Matching, Proceedings of the 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2023)
概要:リソース効率に優れた特徴点マッチングのための軽量なアーキテクチャ「XFeat(Accelerated Features)」を提案します。手法は、局所的な特徴点の検出、抽出、マッチングのための畳み込みニューラルネットワークの基本的な設計を再検討します。特に、リソースが限られたデバイス向けに迅速かつ堅牢なアルゴリズムが必要とされるため、解像度を可能な限り高く保ちながら、ネットワークのチャネル数を制限します。さらに、スパース下でのマッチングを選択できる設計となっており、ナビゲーションやARなどのアプリケーションに適しています。XFeatは、高速かつ同等以上の精度を実現し、一般的なラップトップのCPU上でリアルタイムで動作します。
セル生産方式におけるロボットの活用には様々な問題があるが,その一つとして 3 体以上の物体の組み立てが挙げられる.一般に,複数物体を同時に組み立てる際は,対象の部品をそれぞれロボットアームまたは治具でそれぞれ独立に保持することで組み立てを遂行すると考えられる.ただし,この方法ではロボットアームや治具を部品数と同じ数だけ必要とし,部品数が多いほどコスト面や設置スペースの関係で無駄が多くなる.この課題に対して音𣷓らは組み立て対象物に働く接触力等の解析により,治具等で固定されていない対象物が組み立て作業中に運動しにくい状態となる条件を求めた.すなわち,環境中の非把持対象物のロバスト性を考慮して,組み立て作業条件を検討している.本研究ではこの方策に基づいて,複数物体の組み立て作業を単腕マニピュレータで実行することを目的とする.このとき,対象物のロバスト性を考慮することで,仮組状態の複数物体を同時に扱う手法を提案する.作業対象としてパイプジョイントの組み立てを挙げ,簡易な道具を用いることで単腕マニピュレータで複数物体を同時に把持できることを示す.さらに,作業成功率の向上のために RGB-D カメラを用いた物体の位置検出に基づくロボット制御及び動作計画を実装する.
This paper discusses assembly operations using a single manipulator and a parallel gripper to simultaneously
grasp multiple objects and hold the group of temporarily assembled objects. Multiple robots and jigs generally operate
assembly tasks by constraining the target objects mechanically or geometrically to prevent them from moving. It is
necessary to analyze the physical interaction between the objects for such constraints to achieve the tasks with a single
gripper. In this paper, we focus on assembling pipe joints as an example and discuss constraining the motion of the
objects. Our demonstration shows that a simple tool can facilitate holding multiple objects with a single gripper.
3. 自己紹介
● 代表作
● SQLでボウリングのスコアを計算
with recursive
s(idx, pins1, pins2, pins3) as (
select s1.idx, s1.pins, s2.pins, s3.pins
from score s1
left join score s2 on (s2.idx = s1.idx + 1)
left join score s3 on (s3.idx = s1.idx + 2)
),
f(idx, pins1, pins2, pins3) as (
select idx, pins1, pins2, pins3 from s where idx = 1
union all
select s.idx, s.pins1, s.pins2, s.pins3
from s join f
on (s.idx = f.idx + case when f.pins1 = 10 then 1 else 2 end)
),
sof(idx, pins1, pins2, pins3, score_of_frame) as (
select idx
, pins1, pins2, pins3
, case when pins1 = 10 then pins1 + pins2 + pins3
when pins1 + pins2 = 10 then pins1 + pins2 + pins3
else pins1 + pins2
end as score_of_frame
from f
)
select row_number( ) over w as frame
, pins1
, pins2
, case row_number( ) over w when 10 then pins3
else null end as pins3
, score_of_frame
, sum(score_of_frame) over w
from sof
window w as (order by idx)
09/06/20
10. 方法1:関数インデックス
● インデックスを1つ作るだけで高速な全文検索ができ
る
=> SELECT title FROM docs_en WHERE body ILIKE '%search%';
インデックス作成
=> CREATE INDEX docs_en_idx ON docs_en
USING GIN(to_tsvector('english', body));
CREATE INDEX
検索
=> SELECT title FROM docs_en WHERE
to_tsvector('english', body) @@ to_tsquery('english', 'search');
09/06/20
12. 方法2:tsvector用の列を追加
● 高速。特にスコアによるソートをする場合
● 本文が更新された時にtsvectorは自動的に更新されな
い(トリガやバッチを使う必要がある)
● 容量は大きくなる
=> ALTER TABLE docs_en ADD vec tsvector;
ALTER TABLE
=> UPDATE docs_en SET vec = to_tsvector('english', body);
UPDATE 936
=> CREATE INDEX docs_en_idx2 ON docs_en USING GIN(vec);
CREATE INDEX
検索
=> SELECT title FROM docs_en WHERE vec @@ to_tsquery('english', 'search');
09/06/20
13. LIKEと全文検索の違い
=> select count(*) from docs_en
=> select count(*) from docs_en where to_tsvector('english', body)
where body ilike '%html%'; @@ to_tsquery('html');
count count
------- -------
935 14
(1 row) (1 row)
=> select count(*) from docs_en
=> select count(*) from docs_en where to_tsvector('english', body)
where body ilike '%query%'; @@ to_tsquery('query');
count count
------- -------
312 327
(1 row) (1 row)
09/06/20
16. to_tsvector
● Parserが文章を23種類のtokenに分解
a fat cat sat on a mat - it <b>ate</b> a fat rats
Word, all ASCII XML tag Space symbols
a <b> ' '
fat </b> -
cat
sat
on
mat
it
ate
rats
09/06/20
17. to_tsvector
● token種別毎に正規化
Stopwordの削除
語幹に縮小
Word, all ASCII Space symbols
a ' '
fat fat -
cat cat
sat english_stem sat 削除
on XML tag
mat mat <b>
it </b>
ate ate
rats rat
09/06/20
18. token
=> select * from ts_token_type('default');
tokid | alias | description
-------+-----------------+------------------------------------------
1 | asciiword | Word, all ASCII
2 | word | Word, all letters
3 | numword | Word, letters and digits
4 | email | Email address
5 | url | URL
6 | host | Host
7 | sfloat | Scientific notation
8 | version | Version number
9 | hword_numpart | Hyphenated word part, letters and digits
10 | hword_part | Hyphenated word part, all letters
11 | hword_asciipart | Hyphenated word part, all ASCII
12 | blank | Space symbols
13 | tag | XML tag
14 | protocol | Protocol head
...
23 | entity | XML entity
(23 rows)
09/06/20
21. Dictionary
● Simple、Sysnonym、Ispell、Thesaurus、Snowball
● share/tsearch_data/
● どのtoken typeにどの辞書を適用するかは変更可能
(ALTER TEXT SEARCH CONFIG...)
(share/tsearch_data/english.stop)
i
me
my
myself
we
our
ours
ourselves
you
your
...
09/06/20
22. LIKEと全文検索の違い
=> select count(*) from docs_en
=> select count(*) from docs_en where to_tsvector('english', body)
where body ilike '%html%'; @@ to_tsquery('html');
count count
------- -------
935 14
(1 row) (1 row)
=> select count(*) from docs_en
=> select count(*) from docs_en where to_tsvector('english', body)
where body ilike '%query%'; @@ to_tsquery('query');
count count
------- -------
312 327
(1 row) (1 row)
09/06/20
27. ts_headline
● ts_headline([regconfig, ]text, tsquery[, text])
● 結果の強調表示
● StartSel、StopSel等設定可能
=> select ts_headline('fat cat sat mat', to_tsquery('cat'));
ts_headline
------------------------
fat <b>cat</b> sat mat
(1 row)
09/06/20
28. configuration
to_tsvector('english', body)
to_tsvector('simple', body)
to_tsvector(body)
● 全文検索で使う関数のふるまいをまとめたもの
● 省略された場合、default_text_search_configが使われ
る(postgresql.confやsetコマンドで指定できる)
=> dF
List of text search configurations
Schema | Name | Description
------------+------------+---------------------------------------
pg_catalog | danish | configuration for danish language
pg_catalog | dutch | configuration for dutch language
pg_catalog | english | configuration for english language
09/06/20