-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUdacity Reviews 2.html
182 lines (160 loc) · 60.1 KB
/
Udacity Reviews 2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<!DOCTYPE html>
<html data-ng-app="udacity.grading" data-enforce-browser="" class="ng-scope" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style><style type="text/css">.uib-position-measure{display:block !important;visibility:hidden !important;position:absolute !important;top:-9999px !important;left:-9999px !important;}.uib-position-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll;}</style><style type="text/css">@charset "UTF-8";[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>
<!--[if lte IE 9]>
<script type="text/javascript">
window.location = 'https://www.udacity.com/upgrade';
</script>
<![endif]-->
<title>Udacity Reviews</title>
<meta charset="UTF-8">
<link rel="shortcut icon" href="https://review.udacity.com/assets/images/favicon.ico">
<meta name="description" content="Discover online classes taught by top instructors and industry experts. Take courses at your own pace.">
<meta name="robots" content="noodp">
<!--
These properties are here so social shares of review pages works
properly. We decided to let them apply to every page on the site
because we only expect people to share the review pages.
Guidelines obtained from https://moz.com/blog/meta-data-templates-123
-->
<!-- facebook -->
<meta property="og:title" content="Look at my Udacity Project Feedback!">
<meta property="og:description" content="A review of my work and personalized tips to improve.">
<meta property="og:image" content="https://s3-us-west-1.amazonaws.com/udacity-content/images/reviews/facebook-thumbnail-neutral.png ">
<!-- twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@udacity">
<meta name="twitter:title" content="Udacity Project Feedback">
<meta name="twitter:description" content="A review of my work and personalized tips to improve.">
<!-- "Twitter Summary card images must be at least 120x120px" -->
<meta name="twitter:image" content="https://s3-us-west-1.amazonaws.com/udacity-content/images/reviews/twitter-thumbnail-neutral.png ">
<meta name="application-name" content="Udacity">
<meta name="msapplication-TileColor" content="#FFFFFF">
<meta name="msapplication-TileImage" content="assets/img/logos/udacity/windows_tile/udacity-full-144x144.png">
<meta name="google-site-verification" content="ELX2btu3VElBKIdvkGj5ESBnJh_Dg9PnWjuCwVkPEkA">
<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="apple-touch-icon" href="https://review.udacity.com/assets/images/apple-touch-icon.png">
<link type="text/plain" rel="author" href="http://udacity.com/humans.txt">
<link href="Udacity%20Reviews%202_files/css_002.css" rel="stylesheet" type="text/css">
<link href="Udacity%20Reviews%202_files/css.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="Udacity%20Reviews%202_files/udacity-base.css" type="text/css">
<!-- ngIf: googleBranded -->
<!-- inject:css -->
<link rel="stylesheet" href="Udacity%20Reviews%202_files/grading_3e564bd4.css">
<!-- endinject -->
<style>
@font-face {
font-family: 'Glyphicons Halflings';
src: url('/assets/fonts/glyphicons/glyphicons-halflings-regular.eot');
src: url('/assets/fonts/glyphicons/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.woff2') format('woff2'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.woff') format('woff'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.ttf') format('truetype'), url('/assets/fonts/glyphicons/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
</style>
<script src="Udacity%20Reviews%202_files/airbrake.js" async=""></script><script src="Udacity%20Reviews%202_files/airbrake.js" async=""></script><script type="text/javascript" async="" src="Udacity%20Reviews%202_files/analytics.js"></script><script type="text/javascript">
var segment_write_key = "toT8LUD8hh9KKz18k1i8l8AnAJlF27VY"; // production key for segment
</script>
<script type="text/javascript">
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.1.0";
analytics.load(segment_write_key);
}}();
</script>
</head>
<body data-modal-anti-scroll-helper="" class="responsive ng-class:{'google-certs': googleBranded} ng-scope" ng-controller="MainCtrl as main" style="">
<!-- ngInclude: main.pageContext.headerURL --><div ng-include="main.pageContext.headerURL" class="ng-scope"><header class="navbar site-nav navbar-inverse navbar-static-top ng-scope" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse"> <span class="sr-only ng-scope" translate="">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="logo navbar-brand" href="https://udacity.com/" id="header-logo"> <img alt="Udacity Logo" src="Udacity%20Reviews%202_files/logo.svg"> </a> </div> <nav class="navbar-collapse collapse text-center-xs" id="navbar-collapse" role="navigation"> <ul class="nav navbar-nav navbar-right"> <!-- ngIf: isGrader --> <!-- ngIf: isGrader --> <li> <a data-ng-click="main.logout()" href="" translate="" class="ng-scope">Logout</a> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <ul class="dropdown-menu"> <a data-ng-click="main.logout()" href="" translate="" class="ng-scope">Logout</a> </ul> </li> </ul> </nav> </div> </header> </div>
<div id="page-content" data-qualaroo-survey-info-hack="">
<div loading-container="" class="container-fluid"><div ng-show="loading" class="row ng-hide" style=""> <div class="col-sm-6 col-sm-offset-3 text-center"> <div class="row row-gap-huge"></div> <img src="Udacity%20Reviews%202_files/loading.gif"> <div class="row row-gap-huge"></div> </div> </div> <div ng-show="!loading" class="" style=""> <div ng-transclude="">
<div class="row row-gap-medium ng-scope ng-isolate-scope ng-hide fadeOutUp animated" ng-show="!!message && !dismissed" ng-class="{fadeInDown: !!message, fadeOutUp: dismissed, animated: !!message || dismissed}" alert-box="" style=""> <div class="col-md-offset-2 col-md-8"> <div class="alert hr-slim alert-info"> <button type="button" ng-click="dismiss()" class="close" aria-label="Close"> <span aria-hidden="true">×</span> </button> <span ng-bind-html="message" class="ng-binding"></span> </div> </div> </div>
<!-- uiView: --><div ui-view="" autoscroll="true" class="ng-scope"><div class="row ng-scope"> <div class="col-xs-12 col-lg-10 col-lg-offset-1"> <!-- ngIf: submission.previous_submission_id --> <div class="review-header"> <div class="project-label text-uppercase text-center ng-scope" translate="">Project</div> <div class="project-name text-center ng-binding">Vehicle Detection and Tracking</div> <!-- ngIf: currentProject.nanodegree_title --><div class="nanodegree-link text-center ng-binding ng-scope" ng-if="currentProject.nanodegree_title" style=""> A part of the Self-Driving Car Engineer Program </div><!-- end ngIf: currentProject.nanodegree_title --> </div> <div class="row row-gap-medium"></div> <div class="review-container"> <ul class="nav nav-tabs nav-justified ng-hide" ng-show="isUngradeable()"> <li ng-class="{'active': isCurrentTab('feedback')}" class="active" style=""> <a href="" ng-click="showTab('feedback')" class="ng-binding">Project Review</a> </li> <li ng-class="{'active': isCurrentTab('notes')}" class="" style=""> <a href="" ng-click="showTab('notes')" class="ng-binding">Notes</a> </li> </ul> <ul class="nav nav-tabs nav-justified" ng-hide="isUngradeable()"> <!-- ngIf: hasFeedback --><li ng-if="hasFeedback" ng-class="{'active': isCurrentTab('feedback')}" class="ng-scope active" style=""> <a href="" ng-click="showTab('feedback')" class="ng-binding">Project Review</a> </li><!-- end ngIf: hasFeedback --> <!-- ngIf: showCode --><li ng-if="showCode" ng-class="{'active': isCurrentTab('code')}" class="ng-scope" style=""> <a href="" ng-click="showTab('code')" class="ng-binding"> Code Review <!-- ngIf: commentsCount > 0 --> </a> </li><!-- end ngIf: showCode --> <!-- ngIf: annotation_link --> <li ng-class="{'active': isCurrentTab('notes')}" class="" style=""> <a href="" ng-click="showTab('notes')" class="ng-binding">Notes</a> </li> <!-- ngIf: userCanCreateAudits() && !auditTabState.visible --> <!-- ngIf: auditTabState.visible --> </ul> <div class="row review-tab-body"> <div class="col-sm-10 col-sm-offset-1"> <div ng-show="isUngradeable()" class="ng-hide"> <div class="row row-gap-medium"></div> <section ng-show="isCurrentTab('feedback')" class="" style=""> <div class="ungradeable-tab"> <h3 class="result-label ng-scope" translate="">Unable to review</h3> <p class="ungradeable-info ng-scope" translate="">Your project could not be reviewed. Please resubmit after you address the issue noted by the reviewer.</p> <p class="result-reason ng-isolate-scope" marked="submission.result_reason"></p> <div class="row row-gap-small"></div> <!-- ngIf: isResubmittable() --> <!-- ngIf: submission.archive_url --><div ng-if="submission.archive_url" class="row row-gap-small ng-scope" style=""> <div class="col-xs-12 text-center wide-and-bold"> <a href="https://review-api.udacity.com/api/v1/submissions/987763/archive" download="" class="ng-binding"><img src="Udacity%20Reviews%202_files/download-icon.svg" class="img-initial icon-medium">Download project files</a> </div> </div><!-- end ngIf: submission.archive_url --> <!-- ngIf: submission.url --> <div class="row row-gap-small"> </div> </div> </section> <section ng-show="isCurrentTab('notes')" class="ng-hide" style=""> <!-- ngIf: pastReviews !== undefined --><div reviews-list="" ng-if="pastReviews !== undefined" reviews="pastReviews" this-review="submission" class="ng-scope ng-isolate-scope"><h2 class="review-list-name current-review-name h-slim"> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" class="ng-binding ng-scope" style=""> Review #2 </span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span class="ng-binding"> (this review)</span> </h2> <!-- ngIf: thisReview.completed_at --><small class="text-muted ng-scope" ng-if="thisReview.completed_at" style=""> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span> <span am-time-ago="thisReview.completed_at">1h ago</span></span> </small><!-- end ngIf: thisReview.completed_at --> <!-- ngIf: !thisReview.completed_at --> <div class="text-uppercase submission-notes-header ng-scope" translate="">student notes</div> <div class="submission-notes ng-isolate-scope" marked="thisReview.notes || '_None provided_'"><p>Please note, that this is the second submission.</p>
<p>Here I've increased the size of my deque queue from 5 to 10 and raised the threshold in the Label function from 7 to 10.<br>This has reduced the amount of false positives dramatically.<br>I've added som text (in italics) in the part two in the 'Video implementation' section in the README.md file.</p>
<p>Kind regards, Claus H. Rasmussen</p>
</div> <!-- ngIf: filteredReviews.length > 1 --><hr ng-if="filteredReviews.length > 1" class="ng-scope" style=""><!-- end ngIf: filteredReviews.length > 1 --> <!-- ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-7"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --><span class="review-list-name ng-binding ng-scope" ng-if="thisReview && thisReview.id === review.id"> This review <!-- ngIf: review.previous_submission_id --> </span><!-- end ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">1h ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-7"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --><span ng-if="!(thisReview && thisReview.id === review.id)" class="ng-scope"> <a class="review-list-name ng-binding" ui-sref="reviews-show({submissionId: review.id, audit: null})" target="_blank" href="#!/reviews/985635"> Review #1 <!-- ngIf: review.previous_submission_id --> </a> <!-- ngIf: !votes[review.id] --><span ng-if="!votes[review.id]" class="ng-binding ng-scope"> You reviewed this submission </span><!-- end ngIf: !votes[review.id] --> <!-- ngIf: votes[review.id] --> </span><!-- end ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">18h ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --> <!-- ngIf: errorMessage --> <div class="row row-gap-large"></div> </div><!-- end ngIf: pastReviews !== undefined --> </section> </div> <div ng-hide="isUngradeable()" class=""> <div class="row row-gap-medium"></div> <section ng-show="isCurrentTab('notes')" class="ng-hide" style=""> <!-- ngIf: pastReviews !== undefined --><div reviews-list="" ng-if="pastReviews !== undefined" reviews="pastReviews" this-review="submission" class="ng-scope ng-isolate-scope"><h2 class="review-list-name current-review-name h-slim"> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" class="ng-binding ng-scope" style=""> Review #2 </span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span class="ng-binding"> (this review)</span> </h2> <!-- ngIf: thisReview.completed_at --><small class="text-muted ng-scope" ng-if="thisReview.completed_at" style=""> <!-- ngIf: thisReview.status !== 'canceled' --><span ng-if="thisReview.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: thisReview.status !== 'canceled' --> <!-- ngIf: thisReview.status === 'canceled' --> <span> <span am-time-ago="thisReview.completed_at">1h ago</span></span> </small><!-- end ngIf: thisReview.completed_at --> <!-- ngIf: !thisReview.completed_at --> <div class="text-uppercase submission-notes-header ng-scope" translate="">student notes</div> <div class="submission-notes ng-isolate-scope" marked="thisReview.notes || '_None provided_'"><p>Please note, that this is the second submission.</p>
<p>Here I've increased the size of my deque queue from 5 to 10 and raised the threshold in the Label function from 7 to 10.<br>This has reduced the amount of false positives dramatically.<br>I've added som text (in italics) in the part two in the 'Video implementation' section in the README.md file.</p>
<p>Kind regards, Claus H. Rasmussen</p>
</div> <!-- ngIf: filteredReviews.length > 1 --><hr ng-if="filteredReviews.length > 1" class="ng-scope" style=""><!-- end ngIf: filteredReviews.length > 1 --> <!-- ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-7"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --><span class="review-list-name ng-binding ng-scope" ng-if="thisReview && thisReview.id === review.id"> This review <!-- ngIf: review.previous_submission_id --> </span><!-- end ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">1h ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --><!-- ngIf: filteredReviews.length > 1 --><div ng-if="filteredReviews.length > 1" ng-repeat="review in filteredReviews" class="ng-scope"> <div class="row row-gap-small"> <div class="col-xs-7"> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" class="ng-scope"> <!-- ngIf: !(thisReview && thisReview.id === review.id) --><span ng-if="!(thisReview && thisReview.id === review.id)" class="ng-scope"> <a class="review-list-name ng-binding" ui-sref="reviews-show({submissionId: review.id, audit: null})" target="_blank" href="#!/reviews/985635"> Review #1 <!-- ngIf: review.previous_submission_id --> </a> <!-- ngIf: !votes[review.id] --><span ng-if="!votes[review.id]" class="ng-binding ng-scope"> You reviewed this submission </span><!-- end ngIf: !votes[review.id] --> <!-- ngIf: votes[review.id] --> </span><!-- end ngIf: !(thisReview && thisReview.id === review.id) --> <!-- ngIf: thisReview && thisReview.id === review.id --> </span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> </div> </div> <div class="row"> <!-- ngIf: review.completed_at --><div ng-if="review.completed_at" class="col-xs-12 text-muted ng-scope"> <small> <!-- ngIf: review.status !== 'canceled' --><span ng-if="review.status !== 'canceled'" translate="" class="ng-scope">Reviewed</span><!-- end ngIf: review.status !== 'canceled' --> <!-- ngIf: review.status === 'canceled' --> <span> <span am-time-ago="review.completed_at">18h ago</span></span> </small> </div><!-- end ngIf: review.completed_at --> <!-- ngIf: !review.completed_at --> </div> </div><!-- end ngIf: filteredReviews.length > 1 --><!-- end ngRepeat: review in filteredReviews --> <!-- ngIf: errorMessage --> <div class="row row-gap-large"></div> </div><!-- end ngIf: pastReviews !== undefined --> </section> <section class="code-section ng-hide" ng-show="isCurrentTab('code')" style=""> <!-- ngIf: files && currentRubric --><div code-review="" ng-if="files && currentRubric" files="files" rubric="currentRubric" allow-comments="false" class="ng-scope ng-isolate-scope"><div ng-show="allowComments" class="ng-hide" style=""> <input class="form-control ng-pristine ng-untouched ng-valid ng-empty" ng-model="filterPattern" placeholder="File filter (e.g. "readme.md", ".css", "src/lib/*.js")" style="" type="text"> <div class="row row-gap-small"></div> </div> <!-- ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)" style=""> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">writeup_template.md</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">output_images/save_output_here.txt</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/require.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/promise.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/override.css</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/jquery.css</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/jquery-ui.css</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/index_003.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/index_002.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/index.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/encoding.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/custom.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/custom.css</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/contents.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/codemirror.css</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/bootstrap-tour.css</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">Vehicle_detection_files/MathJax.js</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">README_original.md</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --><div class="code-section-item ng-scope" ng-repeat="file in files" ng-show="isFileVisible(file)"> <div class="code-section-item-title" ng-click="setCurrentFileIndex($index)"> <small> <span ng-class="{'glyphicon-triangle-right': currentFileIndex !== $index, 'glyphicon-triangle-bottom': currentFileIndex === $index}" class="glyphicon glyphicon-triangle-right"> </span> </small> <strong class="ng-binding">README.md</strong> <!-- ngIf: file.comments_count > 0 --> </div> <!-- ngIf: currentFileIndex === $index --> </div><!-- end ngRepeat: file in files --> </div><!-- end ngIf: files && currentRubric --> <div class="row row-gap-medium"></div> </section> <section ng-show="isCurrentTab('annotation')" class="ng-hide"> <div class="row row-gap-large"> <div class="col-xs-12 annotation-text ng-scope" translate="">Your reviewer has provided annotations for your project</div> </div> <div class="row row-gap-medium"> <div class="col-xs-12"> <a class="btn btn-primary btn-sm ng-binding" href="" download="" _target="_blank">Download annotations</a> </div> </div> <div class="row row-gap-huge"></div> </section> <!-- ngIf: critiquesAccessor --><section ng-if="critiquesAccessor" ng-show="isCurrentTab('feedback')" class="ng-scope" style=""> <!-- ngIf: isSubmissionByCurrentUser() --><div social-share="" ng-if="isSubmissionByCurrentUser()" user-type="'student'" button-hashtag="hashtag" url="getShareableUrl()" prompt="'Share your accomplishment'" text="'Just received helpful feedback on my project from a @Udacity reviewer!'" class="ng-scope ng-isolate-scope"><div class="share-table hidden-xs"> <div class="share-prompt ng-binding"> Share your accomplishment </div> <div class="pull-right"> <a ng-click="showTwitterPopup()" class="btn btn-xs"> <img src="Udacity%20Reviews%202_files/twitter.svg"> </a> <a ng-click="showFacebookPopup()" class="btn btn-xs"> <img src="Udacity%20Reviews%202_files/facebook.svg"> </a> </div> </div> <div class="btn-block share-table visible-xs ng-binding"> Share your accomplishment! <a href="" ng-click="showTwitterPopup()"><img src="Udacity%20Reviews%202_files/twitter.svg"></a> <a href="" ng-click="showFacebookPopup()"><img src="Udacity%20Reviews%202_files/facebook.svg"></a> </div> </div><!-- end ngIf: isSubmissionByCurrentUser() --> <!-- ngIf: isSubmissionGradedByCurrentUser() --> <!-- ngIf: hasFeedback && submission.result --><div ng-if="hasFeedback && submission.result" class="ng-scope"> <h3 class="result-label h-slim-top ng-binding"> Meets Specifications </h3> <!-- ngIf: doesNotMeetCount > 0 --> </div><!-- end ngIf: hasFeedback && submission.result --> <!-- ngIf: submission.general_comment --><div ng-if="submission.general_comment" class="row row-gap-medium ng-scope"> <div class="col-xs-12 ng-isolate-scope" marked="submission.general_comment"><p>Nice
work! Since you already received most of the feedback on your first
review, I won't leave all of it again here, but great job for updating
the weaker areas from before!</p>
<ul>
<li>If you are interested in sharing your success, I encourage you to tag your post with <strong>#madewithudacity</strong> to expand your audience.</li>
<li><p>I'm a big fan of improvements and optimizations, if you are
interested, here are some great resources on AGI, GANS, CNNS, and RNNS:<br><a href="https://agi.mit.edu/" target="_blank">https://agi.mit.edu/</a><br><a href="http://rll.berkeley.edu/deeprlcourse/" target="_blank">http://rll.berkeley.edu/deeprlcourse/</a><br><a href="http://guimperarnau.com/blog/2017/03/Fantastic-GANs-and-where-to-find-them" target="_blank">http://guimperarnau.com/blog/2017/03/Fantastic-GANs-and-where-to-find-them</a><br><a href="https://github.com/soumith/ganhacks" target="_blank">https://github.com/soumith/ganhacks</a><br><a href="http://kratzert.github.io/2016/02/12/understanding-the-gradient-flow-through-the-batch-normalization-layer.html" target="_blank">http://kratzert.github.io/2016/02/12/understanding-the-gradient-flow-through-the-batch-normalization-layer.html</a><br><a href="https://www.youtube.com/watch?v=YpdP_0-IEOw" target="_blank">https://www.youtube.com/watch?v=YpdP_0-IEOw</a><br><a href="https://medium.com/intuitionmachine/deep-adversarial-learning-is-finally-ready-and-will-radically-change-the-game-f0cfda7b91d3" target="_blank">https://medium.com/intuitionmachine/deep-adversarial-learning-is-finally-ready-and-will-radically-change-the-game-f0cfda7b91d3</a><br><a href="http://web.stanford.edu/class/cs224n/" target="_blank">http://web.stanford.edu/class/cs224n/</a><br><a href="https://github.com/oxford-cs-deepnlp-2017/lectures" target="_blank">https://github.com/oxford-cs-deepnlp-2017/lectures</a><br><a href="https://www.slideshare.net/ThomasDaSilvaPaula/a-very-gentle-introduction-to-generative-adversarial-networks-aka-gans-71614428" target="_blank">https://www.slideshare.net/ThomasDaSilvaPaula/a-very-gentle-introduction-to-generative-adversarial-networks-aka-gans-71614428</a><br><a href="https://medium.com/@devnag/generative-adversarial-networks-gans-in-50-lines-of-code-pytorch-e81b79659e3f" target="_blank">https://medium.com/@devnag/generative-adversarial-networks-gans-in-50-lines-of-code-pytorch-e81b79659e3f</a><br><a href="http://machinelearningmastery.com/basic-feature-engineering-time-series-data-python/" target="_blank">http://machinelearningmastery.com/basic-feature-engineering-time-series-data-python/</a><br><a href="http://cs231n.github.io/transfer-learning/" target="_blank">http://cs231n.github.io/transfer-learning/</a><br><a href="http://www.deeplearningbook.org/" target="_blank">http://www.deeplearningbook.org/</a></p>
<p>Best of luck! <img src="Udacity%20Reviews%202_files/udacious.png" alt=":udacious:" title=":udacious:" class="emoji"></p>
<p>Cheers. <img src="Udacity%20Reviews%202_files/car.png" alt=":car:" title=":car:" class="emoji"></p>
</li>
</ul>
</div> </div><!-- end ngIf: submission.general_comment --> <div critiques-editor="" critiques-accessor="critiquesAccessor" editable="false" class="ng-isolate-scope"><!-- ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Writeup / README </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The
writeup / README should include a statement and supporting figures /
images that explain how each rubric item was addressed, and specifically
where in the code each step was handled.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Histogram of Oriented Gradients (HOG) </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>Explanation
given for methods used to extract HOG features, including which color
space was chosen, which HOG parameters (orientations, pixels_per_cell,
cells_per_block), and why. </p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The
HOG features extracted from the training data have been used to train a
classifier, could be SVM, Decision Tree or other. Features should be
scaled to zero mean and unit variance before training the classifier.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Sliding Window Search </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>A
sliding window approach has been implemented, where overlapping tiles
in each test image are classified as vehicle or non-vehicle. Some
justification has been given for the particular implementation chosen.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>Some
discussion is given around how you improved the reliability of the
classifier i.e., fewer false positives and more reliable car detections
(this could be things like choice of feature vector, thresholding the
decision function, hard negative mining etc.)</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --><div ng-if="!!critique.observation" class="critique-view-body ng-scope"> <div class="row"> <div class="col-xs-12 col-sm-10 col-sm-offset-1"> <div class="p-slim ng-isolate-scope" marked="critique.observation"><p><strong><code>Suggestion:</code></strong>
Here it's possible to further reduce the region of interest, removing
the opposite lane that doesn't really matter here, improving the
performance of the pipeline. Ideally this would be achieved dynamically
along with lane detection.</p>
<p><strong><code>Note:</code></strong> There's a tradeoff here between
accuracy and performance, as more windows increase the detections of
cars but also take more time. Tweaking the number of windows is
essential to achieve better performance here.</p>
</div> </div> </div> </div><!-- end ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Video Implementation </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>The
sliding-window search plus classifier has been used to search for and
identify vehicles in the videos provided. Video output has been
generated with detected vehicle positions drawn (bounding boxes,
circles, cubes, etc.) on each frame of video.</p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>A
method, such as requiring that a detection be found at or near the same
position in several subsequent frames, (could be a heat map showing
the location of repeat detections) is implemented as a means of
rejecting false positives, and this demonstrably reduces the number of
false positives. Same or similar method used to draw bounding boxes (or
circles, cubes, etc.) around high-confidence detections where multiple
overlapping detections occur. </p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --><div ng-repeat="section in critiquesAccessor.getSections()" class="ng-scope"> <div section-critiques="" section="section" critiques="critiquesAccessor.getCritiques(section.id)" editable="editable" failed-required-placeholder="failedRequiredPlaceholder" passed-required-placeholder="passedRequiredPlaceholder" optional-placeholder="optionalPlaceholder" state="sectionCritiquesState[section.id]" class="ng-isolate-scope"><div> <div class="row row-gap-small"></div> <h3 class="section-name ng-binding"> Discussion </h3> <div> <!-- ngRepeat: critique in critiques --><div ng-repeat="critique in critiques" class="ng-scope"> <div row="" row-gap-small="" col-xs-12="" bg-white="" scroll-if="isCurrentEditingCritique(critique.id)" class="ng-isolate-scope"> <!-- ngIf: isEditingCritique(critique.id) --> <!-- ngIf: !isEditingCritique(critique.id) --><div class="critique-container ng-scope ng-isolate-scope" critique-view="" critique="critique" editable="editable" edit-clicked="setEditingCritique(critique.id, true)" ng-if="!isEditingCritique(critique.id)"><div class="critique-view-header"> <div class="row result-label"> <div class="col-sm-1"> <div class="result-spacing"> <span class="result-icon passed text-center"></span> </div> </div> <div class="col-xs-12 col-sm-10 critique-description ng-isolate-scope" marked="rubricItem.passed_description"><p>Discussion
includes some consideration of problems/issues faced, what could be
improved about their algorithm/pipeline, and what hypothetical cases
would cause their pipeline to fail. </p>
</div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: editable && critiqueLocked() --> </div> <!-- ngIf: !!critique.observation --> <!-- ngIf: editable && !critiqueLocked() --> </div><!-- end ngIf: !isEditingCritique(critique.id) --> </div> </div><!-- end ngRepeat: critique in critiques --> </div> </div> </div> </div><!-- end ngRepeat: section in critiquesAccessor.getSections() --> <div class="row"> <!-- ngIf: !editable && submission.general_comment --> </div> <div class="row"> <!-- ngIf: !(state && state.audit) --><ng-form ng-if="!(state && state.audit)" name="general-comment-form" class="ng-pristine ng-valid ng-scope"> <!-- ngIf: editable --> </ng-form><!-- end ngIf: !(state && state.audit) --> </div> <div class="row row-gap-small"></div> </div> <div class="row row-gap-small"></div> <!-- ngIf: isResubmittable() --> <div class="row row-gap-small"> <div class="col-xs-12 text-center"> <!-- ngIf: submission.archive_url --><a class="wide-and-bold ng-binding ng-scope" ng-if="submission.archive_url" href="https://review-api.udacity.com/api/v1/submissions/987763/archive" download=""> <img src="Udacity%20Reviews%202_files/download-icon.svg" class="icon-medium"> Download Project </a><!-- end ngIf: submission.archive_url --> </div> </div> <!-- ngIf: commentsCount > 0 --> <div class="row row-gap-medium"></div> </section><!-- end ngIf: critiquesAccessor --> <section ng-show="isCurrentTab('audit')" class="ng-hide"> <div audit-tab="" submission="submission" state="auditTabState" class="ng-isolate-scope"><!-- ngIf: auditCritiquesAccessor --> </div> </section> </div> </div> </div> </div> </div> </div> <div ng-show="isCurrentTab('feedback') || isUngradeable()" class="ng-scope" style=""> <!-- ngIf: !hasViewedResubmissionVideo() && isResubmittable() --> </div> <!-- ngIf: hasViewedResubmissionVideo() && isResubmittable() || isSubmissionByCurrentUser() --><div ng-if="hasViewedResubmissionVideo() && isResubmittable() || isSubmissionByCurrentUser()" class="row row-gap-medium ng-scope" style=""> <div class="col-md-10 col-md-offset-1 text-center"> <!-- ngIf: hasViewedResubmissionVideo() && isResubmittable() --> </div> </div><!-- end ngIf: hasViewedResubmissionVideo() && isResubmittable() || isSubmissionByCurrentUser() --> <div class="row row-gap-large ng-scope"></div> <!-- ngIf: isSubmissionByCurrentUser() && currentProject.nanodegree_key --><div ng-if="isSubmissionByCurrentUser() && currentProject.nanodegree_key" class="row row-gap-medium ng-scope" style=""> <div class="col-xs-12 text-center"> <a class="btn btn-secondary ng-binding" ng-click="goToPath()">Return to Path</a> </div> </div><!-- end ngIf: isSubmissionByCurrentUser() && currentProject.nanodegree_key --> <div class="visible-xs row row-gap-medium ng-scope"> <div class="col-xs-12"> <div ng-show="!isUngradeable() && showStudentFeedback" class="locked-feedback-footer ng-hide" style=""> <div ng-switch="hoverValue"> <!-- ngSwitchWhen: 1 --> <!-- ngSwitchWhen: 2 --> <!-- ngSwitchWhen: 3 --> <!-- ngSwitchWhen: 4 --> <!-- ngSwitchWhen: 5 --> <!-- ngSwitchDefault: --><span ng-switch-default="" class="ng-binding ng-scope">Rate this review</span><!-- end ngSwitchWhen: --> </div> <div class="star-rating"> <span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="5" aria-valuenow="5" aria-valuetext="five" uib-rating="" state-on="'feedback-star-on'" state-off="'feedback-star-off'" on-leave="hoverValue = null" on-hover="hoverValue = value" ng-model="studentFeedback.rating" class="ng-isolate-scope ng-not-empty ng-valid">
<!-- ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">(*)</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-on" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="one" style=""></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">(*)</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-on" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="two"></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">(*)</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-on" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="three"></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">(*)</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-on" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="four"></i><!-- end ngRepeat: r in range track by $index --><span ng-repeat-start="r in range track by $index" class="sr-only ng-binding ng-scope">(*)</span>
<i ng-repeat-end="" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon ng-scope feedback-star-on" ng-class="$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')" ng-attr-title="{{r.title}}" title="five"></i><!-- end ngRepeat: r in range track by $index -->
</span> </div> </div> </div> </div> <!-- ngIf: shouldShowAssessmentFooter() --> <div class="row row-gap-medium ng-scope"></div> <div id="comment-wrapper" class="ng-scope"></div> </div>
</div> </div> </div>
</div>
<!-- ngInclude: main.pageContext.footerURL --><div ng-include="main.pageContext.footerURL" class="ng-scope"><footer id="footer" ng-controller="FooterCtrl as ctrl" class="ng-scope"> <div class="container"> <ul class="nav nav-pills"> <!-- ngIf: currentUser && currentUser.role !== 'student' --> <!-- ngIf: currentUser && currentUser.role !== 'student' --> <li><a ui-sref="submissions.student-faq" translate="" class="ng-scope" href="#!/submissions/student-faq">Student FAQ</a></li> </ul> </div> </footer> </div>
<script src="Udacity%20Reviews%202_files/jquery.js"></script>
<script src="Udacity%20Reviews%202_files/materialize.js"></script>
<script type="text/javascript" src="Udacity%20Reviews%202_files/airbrake-shim.js" data-airbrake-project-id="108424" data-airbrake-project-key="585b2c42b7a3ccfb360e6b1461185702" data-airbrake-environment-name="production"></script>
<script data-airbrake-onload="initAirbrake">
function initAirbrake() {
Airbrake.addFilter(function (notice) {
console.log(notice);
return true;
});
}
</script>
<script src="Udacity%20Reviews%202_files/angular.js"></script>
<!-- inject:js -->
<script src="Udacity%20Reviews%202_files/_vendor_88660a79.js"></script>
<script src="Udacity%20Reviews%202_files/grading_88660a79.js"></script>
<script src="Udacity%20Reviews%202_files/airbrake-shim.js"></script>
<!-- endinject -->
<div class="hiddendiv common"></div></body></html>