{"action":"created","comment":{"url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/comments/77955518","id":77955518,"diff_hunk":"@@ -1,99 +1,112 @@\n+// Copyright (C) 2016 by Krishneel Chaudhary @ JSK Lab, The University\n+// of Tokyo\n \n #include <jsk_perception/histogram_of_oriented_gradients.h>\n \n-HOGFeatureDescriptor::HOGFeatureDescriptor() {\n-   \n+HOGFeatureDescriptor::HOGFeatureDescriptor(\n+    const int cell_size, const int block_per_cell,\n+    const int n_bins, const float angle, const int num_threads) :\n+    CELL(cell_size),\n+    BLOCK(block_per_cell),\n+    ANGLE(angle),\n+    N_BINS(n_bins),\n+    num_threads_(num_threads_) {\n+    this->BINS_ANGLE = this->ANGLE / this->N_BINS;\n }\n \n-void HOGFeatureDescriptor::bilinearBinVoting(\n+void HOGFeatureDescriptor::histogramBinVoting(\n     const float &angle, int &lower_index, int &higher_index) {\n     float nearest_lower = FLT_MAX;\n     float nearest_higher = FLT_MAX;\n     lower_index = 0;\n     higher_index = 0;\n     for (int i = BINS_ANGLE/2; i < ANGLE; i += BINS_ANGLE) {\n-       float distance = abs(angle - i);\n+\tfloat distance = abs(angle - i);\n         if (i < angle) {\n             if (distance < nearest_lower) {\n                 nearest_lower = distance;\n                 lower_index = i;\n             }\n-        } else {\n-            if (distance < nearest_higher) {\n-                nearest_higher = distance;\n-                higher_index = i;\n-            }\n         }\n+\t/*\n+\telse {\n+\t    if (distance < nearest_higher) {\n+\t\tnearest_higher = distance;\n+\t\thigher_index = i;\n+\t    }\n+\t}\n+\t*/\n     }\n }\n \n void HOGFeatureDescriptor::imageGradient(\n     const cv::Mat &image, cv::Mat &hog_bins) {\n     cv::Mat xsobel;\n     cv::Mat ysobel;\n-    cv::Sobel(image, xsobel, CV_32F, 1, 0, 3);\n-    cv::Sobel(image, ysobel, CV_32F, 0, 1, 3);\n+    cv::Sobel(image, xsobel, CV_32F, 1, 0, 7);\n+    cv::Sobel(image, ysobel, CV_32F, 0, 1, 7);\n     cv::Mat Imag;\n     cv::Mat Iang;\n     cv::cartToPolar(xsobel, ysobel, Imag, Iang, true);\n-    cv::add(Iang, cv::Scalar(180), Iang, Iang < 0);\n-    cv::add(Iang, cv::Scalar(-180), Iang, Iang >= 180);\n+    cv::add(Iang, cv::Scalar(ANGLE), Iang, Iang < 0);\n+    cv::add(Iang, cv::Scalar(-ANGLE), Iang, Iang >= ANGLE);\n     cv::Mat orientation_histogram;\n     for (int j = 0; j < image.rows; j += CELL) {\n         for (int i = 0; i < image.cols; i += CELL) {\n-           cv::Rect rect = cv::Rect(i, j, CELL, CELL);\n-           if ((rect.x + rect.width <= image.cols) &&\n-               (rect.y + rect.height <= image.rows)) {\n-              cv::Mat bin = cv::Mat::zeros(1, N_BINS, CV_32F);\n-                for (int y = rect.y; y < (rect.y + rect.height); y++) {\n-                    for (int x = rect.x; x < (rect.x + rect.width); x++) {\n-                       float angle = static_cast<float>(Iang.at<float>(y, x));\n-                       int l_bin;\n-                       int h_bin;\n-                       this->bilinearBinVoting(angle, l_bin, h_bin);\n-                       float l_ratio = 1 - (angle - l_bin)/BINS_ANGLE;\n-                       float h_ratio = 1 + (angle - h_bin)/BINS_ANGLE;\n-                       int l_index = (l_bin-(BINS_ANGLE/2))/BINS_ANGLE;\n-                       int h_index = (h_bin-(BINS_ANGLE/2))/BINS_ANGLE;\n-                        bin.at<float>(0, l_index) +=\n-                           (Imag.at<float>(y, x) * l_ratio);\n-                        bin.at<float>(0, h_index) +=\n-                           (Imag.at<float>(y, x) * h_ratio);\n-                    }\n-                }\n-                orientation_histogram.push_back(bin);\n-            }\n+\t    cv::Rect rect = cv::Rect(i, j, CELL, CELL);\n+\t    if ((rect.x + rect.width <= image.cols) &&\n+\t\t(rect.y + rect.height <= image.rows)) {\n+\t\tcv::Mat bin = cv::Mat::zeros(1, N_BINS, CV_32F);\n+\t\tfor (int y = rect.y; y < (rect.y + rect.height); y++) {\n+\t\t    for (int x = rect.x; x < (rect.x + rect.width); x++) {\n+\t\t\tfloat angle = static_cast<float>(Iang.at<float>(y, x));\n+\t\t\tint l_bin;\n+\t\t\tint h_bin;\n+\t\t\tthis->histogramBinVoting(angle, l_bin, h_bin);\n+\t\t\tfloat l_ratio = 1.0f - (angle - l_bin)/BINS_ANGLE;\n+\t\t\tfloat h_ratio = 1.0f - l_ratio;\n+\t\t\tint l_index = (l_bin-(BINS_ANGLE/2))/BINS_ANGLE;\n+\t\t\t// int h_index =\n+\t\t\t// (h_bin-(BINS_ANGLE/2))/BINS_ANGLE;\n+\t\t\tint h_index = l_index + 1;\n+\t\t\tbin.at<float>(0, l_index) +=\n+\t\t\t    (Iang.at<float>(y, x) * l_ratio);\n+\t\t\tbin.at<float>(0, h_index) +=\n+\t\t\t    (Iang.at<float>(y, x) * h_ratio);\n+\t\t    }\n+\t\t}\n+\t\torientation_histogram.push_back(bin);\n+\t    }\n         }\n     }\n     hog_bins = orientation_histogram.clone();\n }\n \n cv::Mat HOGFeatureDescriptor::blockGradient(\n-    const int col, const int row, cv::Mat &bins) {\n+    const int col, const int row, const int stride, cv::Mat &bins) {\n     cv::Mat block_hogMD = cv::Mat(cv::Size(N_BINS * BLOCK * BLOCK, 1), CV_32F);\n     int icounter = 0;\n-    for (int j = row; j < (row + BLOCK); j++) {\n-       for (int i = col; i < (col + BLOCK); i++) {\n-          int index = (j * CELL) + i;\n-          for (int k = 0; k < N_BINS; k++) {\n-             block_hogMD.at<float>(0, icounter++) = bins.at<float>(index);\n-          }\n-        }\n+    for (int j = 0; j < BLOCK; j++) {\n+        for (int i = 0; i < BLOCK; i++) {\n+\t    int index = i + (j * stride) + col;\n+\t    for (int k = 0; k < N_BINS; k++) {\n+\t\tblock_hogMD.at<float>(0, icounter++) = bins.at<float>(index, k);\n+\t    }\n+\t}\n     }\n     return block_hogMD;\n }\n \n void HOGFeatureDescriptor::getHOG(\n     const cv::Mat &image, cv::Mat &bins, cv::Mat &featureMD) {\n-    for (int j = 0; j < image.rows; j += CELL) {\n-       for (int i = 0; i < image.cols; i += CELL) {\n-          cv::Rect rect = cv::Rect(i, j, CELL*BLOCK, CELL*BLOCK);\n-            if ((rect.x + rect.width <= image.cols) &&\n-                (rect.y + rect.height <= image.rows)) {\n-               cv::Mat hogMD = this->blockGradient(rect.x, rect.y, bins);\n-               normalize(hogMD, hogMD, 1, 0, CV_L2);\n-               featureMD.push_back(hogMD);\n-            }\n+    const int stride = static_cast<int>(image.cols/CELL);\n+    int index = 0;\n+    for (int j = 0; j < image.rows - CELL; j += CELL) {\n+\tfor (int i = 0; i < image.cols - CELL; i += CELL) {\n+\t    cv::Mat hogMD = this->blockGradient(index, index, stride, bins);","path":"jsk_perception/src/histogram_of_oriented_gradients.cpp","position":158,"original_position":158,"commit_id":"e83a6f75c7498919d3c1d67a923920789791c424","original_commit_id":"e83a6f75c7498919d3c1d67a923920789791c424","user":{"login":"k-okada","id":493276,"avatar_url":"https://avatars.githubusercontent.com/u/493276?v=3","gravatar_id":"","url":"https://api.github.com/users/k-okada","html_url":"https://github.com/k-okada","followers_url":"https://api.github.com/users/k-okada/followers","following_url":"https://api.github.com/users/k-okada/following{/other_user}","gists_url":"https://api.github.com/users/k-okada/gists{/gist_id}","starred_url":"https://api.github.com/users/k-okada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k-okada/subscriptions","organizations_url":"https://api.github.com/users/k-okada/orgs","repos_url":"https://api.github.com/users/k-okada/repos","events_url":"https://api.github.com/users/k-okada/events{/privacy}","received_events_url":"https://api.github.com/users/k-okada/received_events","type":"User","site_admin":false},"body":"```\r\n-            if ((rect.x + rect.width <= image.cols) &&\r\n -                (rect.y + rect.height <= image.rows)) {\r\n```","created_at":"2016-09-08T07:10:49Z","updated_at":"2016-09-08T07:10:49Z","html_url":"https://github.com/jsk-ros-pkg/jsk_recognition/pull/1593#discussion_r77955518","pull_request_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593","_links":{"self":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/comments/77955518"},"html":{"href":"https://github.com/jsk-ros-pkg/jsk_recognition/pull/1593#discussion_r77955518"},"pull_request":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593"}}},"pull_request":{"url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593","id":66810170,"html_url":"https://github.com/jsk-ros-pkg/jsk_recognition/pull/1593","diff_url":"https://github.com/jsk-ros-pkg/jsk_recognition/pull/1593.diff","patch_url":"https://github.com/jsk-ros-pkg/jsk_recognition/pull/1593.patch","issue_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/issues/1593","number":1593,"state":"closed","locked":false,"title":"HOG modified and bug fix","user":{"login":"iKrishneel","id":9315167,"avatar_url":"https://avatars.githubusercontent.com/u/9315167?v=3","gravatar_id":"","url":"https://api.github.com/users/iKrishneel","html_url":"https://github.com/iKrishneel","followers_url":"https://api.github.com/users/iKrishneel/followers","following_url":"https://api.github.com/users/iKrishneel/following{/other_user}","gists_url":"https://api.github.com/users/iKrishneel/gists{/gist_id}","starred_url":"https://api.github.com/users/iKrishneel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iKrishneel/subscriptions","organizations_url":"https://api.github.com/users/iKrishneel/orgs","repos_url":"https://api.github.com/users/iKrishneel/repos","events_url":"https://api.github.com/users/iKrishneel/events{/privacy}","received_events_url":"https://api.github.com/users/iKrishneel/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-04-18T07:39:22Z","updated_at":"2016-09-08T07:10:49Z","closed_at":"2016-09-08T06:53:07Z","merged_at":null,"merge_commit_sha":"7467d755e6646824e44e7d5a01c2ea44e7c9caf9","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593/commits","review_comments_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593/comments","review_comment_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/issues/1593/comments","statuses_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/statuses/e83a6f75c7498919d3c1d67a923920789791c424","head":{"label":"iKrishneel:master","ref":"master","sha":"e83a6f75c7498919d3c1d67a923920789791c424","user":{"login":"iKrishneel","id":9315167,"avatar_url":"https://avatars.githubusercontent.com/u/9315167?v=3","gravatar_id":"","url":"https://api.github.com/users/iKrishneel","html_url":"https://github.com/iKrishneel","followers_url":"https://api.github.com/users/iKrishneel/followers","following_url":"https://api.github.com/users/iKrishneel/following{/other_user}","gists_url":"https://api.github.com/users/iKrishneel/gists{/gist_id}","starred_url":"https://api.github.com/users/iKrishneel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iKrishneel/subscriptions","organizations_url":"https://api.github.com/users/iKrishneel/orgs","repos_url":"https://api.github.com/users/iKrishneel/repos","events_url":"https://api.github.com/users/iKrishneel/events{/privacy}","received_events_url":"https://api.github.com/users/iKrishneel/received_events","type":"User","site_admin":false},"repo":{"id":34615181,"name":"jsk_recognition","full_name":"iKrishneel/jsk_recognition","owner":{"login":"iKrishneel","id":9315167,"avatar_url":"https://avatars.githubusercontent.com/u/9315167?v=3","gravatar_id":"","url":"https://api.github.com/users/iKrishneel","html_url":"https://github.com/iKrishneel","followers_url":"https://api.github.com/users/iKrishneel/followers","following_url":"https://api.github.com/users/iKrishneel/following{/other_user}","gists_url":"https://api.github.com/users/iKrishneel/gists{/gist_id}","starred_url":"https://api.github.com/users/iKrishneel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iKrishneel/subscriptions","organizations_url":"https://api.github.com/users/iKrishneel/orgs","repos_url":"https://api.github.com/users/iKrishneel/repos","events_url":"https://api.github.com/users/iKrishneel/events{/privacy}","received_events_url":"https://api.github.com/users/iKrishneel/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/iKrishneel/jsk_recognition","description":"JSK perception ROS packages","fork":true,"url":"https://api.github.com/repos/iKrishneel/jsk_recognition","forks_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/forks","keys_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/teams","hooks_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/hooks","issue_events_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/issues/events{/number}","events_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/events","assignees_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/assignees{/user}","branches_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/branches{/branch}","tags_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/tags","blobs_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/git/refs{/sha}","trees_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/statuses/{sha}","languages_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/languages","stargazers_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/stargazers","contributors_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/contributors","subscribers_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/subscribers","subscription_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/subscription","commits_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/commits{/sha}","git_commits_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/git/commits{/sha}","comments_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/comments{/number}","issue_comment_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/issues/comments{/number}","contents_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/contents/{+path}","compare_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/merges","archive_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/downloads","issues_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/issues{/number}","pulls_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/pulls{/number}","milestones_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/milestones{/number}","notifications_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/labels{/name}","releases_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/releases{/id}","deployments_url":"https://api.github.com/repos/iKrishneel/jsk_recognition/deployments","created_at":"2015-04-26T14:32:28Z","updated_at":"2016-01-16T07:40:29Z","pushed_at":"2016-04-19T04:24:22Z","git_url":"git://github.com/iKrishneel/jsk_recognition.git","ssh_url":"git@github.com:iKrishneel/jsk_recognition.git","clone_url":"https://github.com/iKrishneel/jsk_recognition.git","svn_url":"https://github.com/iKrishneel/jsk_recognition","homepage":"https://github.com/jsk-ros-pkg/jsk_recognition","size":66465,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"jsk-ros-pkg:master","ref":"master","sha":"ec21810b6d722b8164fdbe51a326d1c5ec14061a","user":{"login":"jsk-ros-pkg","id":6836654,"avatar_url":"https://avatars.githubusercontent.com/u/6836654?v=3","gravatar_id":"","url":"https://api.github.com/users/jsk-ros-pkg","html_url":"https://github.com/jsk-ros-pkg","followers_url":"https://api.github.com/users/jsk-ros-pkg/followers","following_url":"https://api.github.com/users/jsk-ros-pkg/following{/other_user}","gists_url":"https://api.github.com/users/jsk-ros-pkg/gists{/gist_id}","starred_url":"https://api.github.com/users/jsk-ros-pkg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsk-ros-pkg/subscriptions","organizations_url":"https://api.github.com/users/jsk-ros-pkg/orgs","repos_url":"https://api.github.com/users/jsk-ros-pkg/repos","events_url":"https://api.github.com/users/jsk-ros-pkg/events{/privacy}","received_events_url":"https://api.github.com/users/jsk-ros-pkg/received_events","type":"Organization","site_admin":false},"repo":{"id":17374628,"name":"jsk_recognition","full_name":"jsk-ros-pkg/jsk_recognition","owner":{"login":"jsk-ros-pkg","id":6836654,"avatar_url":"https://avatars.githubusercontent.com/u/6836654?v=3","gravatar_id":"","url":"https://api.github.com/users/jsk-ros-pkg","html_url":"https://github.com/jsk-ros-pkg","followers_url":"https://api.github.com/users/jsk-ros-pkg/followers","following_url":"https://api.github.com/users/jsk-ros-pkg/following{/other_user}","gists_url":"https://api.github.com/users/jsk-ros-pkg/gists{/gist_id}","starred_url":"https://api.github.com/users/jsk-ros-pkg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsk-ros-pkg/subscriptions","organizations_url":"https://api.github.com/users/jsk-ros-pkg/orgs","repos_url":"https://api.github.com/users/jsk-ros-pkg/repos","events_url":"https://api.github.com/users/jsk-ros-pkg/events{/privacy}","received_events_url":"https://api.github.com/users/jsk-ros-pkg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jsk-ros-pkg/jsk_recognition","description":"JSK perception ROS packages","fork":false,"url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition","forks_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/forks","keys_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/teams","hooks_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/hooks","issue_events_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/issues/events{/number}","events_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/events","assignees_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/assignees{/user}","branches_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/branches{/branch}","tags_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/tags","blobs_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/git/refs{/sha}","trees_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/statuses/{sha}","languages_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/languages","stargazers_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/stargazers","contributors_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/contributors","subscribers_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/subscribers","subscription_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/subscription","commits_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/commits{/sha}","git_commits_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/git/commits{/sha}","comments_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/comments{/number}","issue_comment_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/issues/comments{/number}","contents_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/contents/{+path}","compare_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/merges","archive_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/downloads","issues_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/issues{/number}","pulls_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls{/number}","milestones_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/milestones{/number}","notifications_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/labels{/name}","releases_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/releases{/id}","deployments_url":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/deployments","created_at":"2014-03-03T17:59:44Z","updated_at":"2016-07-31T12:51:16Z","pushed_at":"2016-09-08T06:50:51Z","git_url":"git://github.com/jsk-ros-pkg/jsk_recognition.git","ssh_url":"git@github.com:jsk-ros-pkg/jsk_recognition.git","clone_url":"https://github.com/jsk-ros-pkg/jsk_recognition.git","svn_url":"https://github.com/jsk-ros-pkg/jsk_recognition","homepage":"https://github.com/jsk-ros-pkg/jsk_recognition","size":95663,"stargazers_count":26,"watchers_count":26,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":52,"mirror_url":null,"open_issues_count":43,"forks":52,"open_issues":43,"watchers":26,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593"},"html":{"href":"https://github.com/jsk-ros-pkg/jsk_recognition/pull/1593"},"issue":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/issues/1593"},"comments":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/issues/1593/comments"},"review_comments":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593/comments"},"review_comment":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/pulls/1593/commits"},"statuses":{"href":"https://api.github.com/repos/jsk-ros-pkg/jsk_recognition/statuses/e83a6f75c7498919d3c1d67a923920789791c424"}}}}
{"actor":{"display_login":"k-okada"}}